数据库包含订单.
订单可以包含在一组订单中.
对于每组订单,它可以包含1到多个订单.
订单可以包含在一组订单中.
对于每组订单,它可以包含1到多个订单.
但是,Orders可以为NULLO值分配GroupOrderId,因为之前的Orders没有分组概念.只有新订单强制执行添加到组的概念.
要为每个订单执行操作而要填充的类结构是
public class OrdersGroup { public int? GroupOrderId { get; set; } public List<int> OrderIds { get; set; } }
linq声明
var workPacketordersList = (from o in db.Orders where o.GroupOrderId >= groupOrderIdMin && o.GroupOrderId <= groupOrderIdMax && o.IsDeleted == false orderby o.WorkPacketId ascending group o by o.WorkPacketId into grp select new OrdersGroup { GroupOrderId = grp.Key,OrderIds = grp.Select(g => g.OrderId).ToList() }).ToList();
完全例外
LINQ to Entities does not recognize the method 'System.Collections.Generic.List`1[system.int32] ToList[Int32](System.Collections.Generic.IEnumerable`1[system.int32])' method,and this method cannot be translated into a store expression.
我看到linq查询的返回类型是List< OrdersGroup>.
如果从查询中省略了最终的.ToList(),则返回类型变为IQueryable< OrdersGroup>
无论接下来执行什么操作,结果都是此方法无法转换为商店表达式的异常.
我试图将特定的选择新OrdersGroup删除到更通用的select new中,然后对此结果执行操作,仅查找相同的商店表达式异常.
有人可以透露一下这个linq不正确的地方吗?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。