【发布时间】:2017-05-06 20:44:19
【问题描述】:
我正在尝试创建一种方法,该方法将一个实体分组到几个字段上,然后获取另一个字段中的一些。像这样:
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。”抛出 - 我几乎无法理解。
我还发现,如果我不传入选择器,而是直接调用 sum,比如Value = x.Sum(s => s.MyValue);,那么它可以正常工作
【问题讨论】:
-
将
selector参数类型改为Expression<Func<MyEntityType, int>> -
然后我收到错误消息,即项目“x”不包含“总和”的定义。然后调用 x.AsQueryable().Sum(selector) 即可。谢谢!
标签: c# entity-framework linq entity-framework-6 linq-to-entities