【发布时间】:2012-05-14 17:52:12
【问题描述】:
您好,我对实体框架中的查询有疑问
我的父项是workorders
我的子项是workorderitems
我想从workorderitems 表中选择workorder_id 列与我的变量(myid)匹配的所有项目。结果应按项目名称分组,数量应相加。
此外,如果我删除 GroupBy 和 Select 语句,查询会返回结果
但是,使用 GroupBy 和 Select 语句时出现错误。
下面是我的语法:
var workorderitems= DBContext.WorkOrderItems
.Where(o => o.workorder_id == myid)
.GroupBy(grp => new { grp.ItemName })
.Select(result => new { itemname = result.Key.ItemName, qty = result.Sum(o => o.ItemQuantity) });
var mycount = workorderitems.Count();
如果我的语法看起来正确,有人可以告诉我吗?
【问题讨论】:
-
对象引用未设置为对象的实例。我认为这意味着查询没有返回值?
-
这意味着它在返回任何值之前就崩溃了。
-
所以我使用的数据库提供程序不支持 GroupBy 或 Sum。有没有办法解决这个问题?
-
您可以尝试在 where 子句之后添加 ToList()。然后 groupby 和 select 将由 C# 而不是您的数据库提供程序处理。
-
美丽这就像一个魅力。我分两步完成。首先只执行 .where 和 tolist。然后把这个结果和我们分组并求和
标签: c# entity-framework entity-framework-4 linq-to-entities