SELECT o.OrderType, o.InsCompanyID, o.CorpCompanyID, item.ContractorID, COUNT(o.ID) FROM MobileOrder o
INNER JOIN MobileOrderServiceItem item ON o.ID=item.MobileOrderID
GROUP BY o.OrderType, o.InsCompanyID, o.CorpCompanyID, item.ContractorID
把这个转成 linq怎么写

sql 转 linq, join group by 一起用的问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 你知我知皆知 2024-08-03 15:54关注
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
可以使用 LINQ 的
GroupJoin
方法来实现。以下是一个示例:var result = from o in db.MobileOrders join item in db.MobileOrderServiceItems on o.Id equals item.MobileOrderId into g from g in g.DefaultIfEmpty() group g by new { o.OrderType, o.InsCompanyID, o.CorpCompanyID, item.ContractorID } into g1 select new { OrderType = g1.Key.OrderType, InsCompanyID = g1.Key.InsCompanyID, CorpCompanyID = g1.Key.CorpCompanyID, ContractorID = g1.Key.ContractorID, Count = g.Count() };
在这个例子中,我们首先从
MobileOrders
和MobileOrderServiceItems
中获取一组记录,并将这些记录放入一个g
对象的集合中。然后,我们将每个组按照键(即订单类型、保险公司和公司ID)进行分组。最后,我们返回一个新的Result
类型对象,其中包含每种组合的订单数量。注意:在实际应用中,你需要根据你的数据库模式调整上述代码。例如,如果你的表结构是不同的,请确保你对查询进行了适当的修改。
解决 无用评论 打赏 举报