LINQ : 如何在JOIN或者GROUP BY的时候使用复合键

本文介绍如何在LINQ中使用多个键来进行JOIN和GROUPBY操作,提供了具体的C#代码示例,展示了复杂查询的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在LINQ中,可以很方便地进行JOIN或者GROUP BY的操作。但一般情况下,它们都是基于一个键的。如果想要基于多个键进行JOIN或者GROUP BY,则可以参考下面的语法

var query = from o in db.Orders
    from p in db.Products
    join d in db.OrderDetails
        on new {o.OrderID, p.ProductID} equals new {d.OrderID,
        d.ProductID}
into details
        from d in details
        select new {o.OrderID, p.ProductID, d.UnitPrice};

或者

join...on new {Name = o.CustomerName, ID = o.CustID} equals
    new {Name = d.CustName, ID = d.CustID }

 

GROUP BY的做法也一样

本文由作者: 陈希章 于 2009/7/16 21:37:46 发布在: http://www.cnblogs.com/chenxizhang/
本文版权归作者所有,可以转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
更多博客文章,以及作者对于博客引用方面的完整声明以及合作方面的政策,请参考以下站点: 陈希章的博客中心
本文是使用 博客同步和管理系统自动于2009/7/16 21:37:51 从 陈希章@博客园 同步过来的。原文地址: http://www.cnblogs.com/chenxizhang/archive/2009/07/16/1525162.html ,发表于2009/7/16 13:38:00.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值