登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

学无止境

一点积累,与大家分享

 
 
 

日志

 
 

如何:使用复合键进行联接  

2009-12-08 12:26:40|  分类: C#技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

此示例演示如何执行想要使用多个键来定义匹配的联接操作。使用组合键来完成此操作。以匿名类型或包含要比较的值的命名类型的形式来创建组合键。如果将跨方法边界传递查询变量,请使用为该键重写 EqualsGetHashCode 的命名类型。属性的名称以及属性出现的顺序在每个键中必须相同。

如何:使用复合键进行联接 - 秋的季节 - 秋的博客  示例

下面的示例演示如何使用组合键来联接来自三个表中的数据:

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};

组合键上的类型推理取决于这些键中属性的名称,以及属性的出现顺序。如果源序列中属性的名称不同,您必须在键中分配新名称。例如,如果 Orders 表和 OrderDetails 表各自为它们的列使用不同的名称,则您将通过在匿名类型中分配相同的名称来创建组合键:

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

还可以在 group 子句中使用组合键。

  评论这张
 
阅读(460)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018