Я пытаюсь создать метод, который я группирую сущность на пару полей, а затем получаю некоторое другое поле. Как так:Передача Func в Linq в Entities Sum (..)
private async Task<List<KpiGrounping<int>>> GetGrouping(IQueryable<MyEntityType> query, Func<MyEntityType, int> selector)
{
return await (from item in entity
group itemby new
{
item.DimCountry.Geo,
item.DimPlatform.Platform
} into x
select new MyGrounpingDto
{
Geo = x.Key.Geo.Trim(),
Platform = x.Key.Platform.Trim(),
Value = x.Sum(selector)
}).ToListAsync();
}
, который я называю как var foo = GetGrouping(context.MyEntities, x=>x.MyValue);
Когда я делаю это я получаю сообщение об ошибке: «Ошибка поставщика внутренних данных .NET Framework 1025.» брошенный - который я не могу понять.
Я также считаю, что если я не пройти в селекторе, и вместо того, чтобы напрямую позвонить сумма, как Value = x.Sum(s => s.MyValue);
то он работает отлично
Измените ' selector' для 'Expression>' –
Затем я получаю сообщение об ошибке, что элемент 'x' не содержит определения для 'Sum'. Вызов x.AsQueryable(). Затем (селектор) работает. благодаря! – MartinM