linq体验(6)——linq to sql语句之join与order by

linq体验(6)——linq to sql语句之join与order by

ID:20358648

大小:71.50 KB

页数:11页

时间:2018-10-09

linq体验(6)——linq to sql语句之join与order by_第1页
linq体验(6)——linq to sql语句之join与order by_第2页
linq体验(6)——linq to sql语句之join与order by_第3页
linq体验(6)——linq to sql语句之join与order by_第4页
linq体验(6)——linq to sql语句之join与order by_第5页
资源描述:

《linq体验(6)——linq to sql语句之join与order by》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Join操作适用场景:在我们表关系中有一对一关系,一对多关系,多对多关系等。对各个表之间的关系,就用这些实现对多个表的操作。说明:在Join操作中,分别为Join(Join查询),SelectMany(Select一对多选择)和GroupJoin(分组Join查询)。该扩展方法对两个序列中键匹配的元素进行innerjoin操作SelectMany说明:我们在写查询语句时,如果被翻译成SelectMany需要满足2个条件。1:查询语句中没有join和into,2:必须出现EntitySet。在我们表关系中有

2、一对一关系,一对多关系,多对多关系等,下面分别介绍一下。1.一对多关系(1toMany):varq=fromcindb.Customersfromoinc.Orderswherec.City=="London"selecto;语句描述:Customers与Orders是一对多关系。即Orders在Customers类中以EntitySet形式出现。所以第二个from是从c.Orders而不是db.Orders里进行筛选。这个例子在From子句中使用外键导航选择伦敦客户的所有订单。varq=frompind

3、b.Productswherep.Supplier.Country=="USA"&&p.UnitsInStock==0selectp;语句描述:这一句使用了p.Supplier.Country条件,间接关联了Supplier表。这个例子在Where子句中使用外键导航筛选其供应商在美国且缺货的产品。生成SQL语句为:SELECT[t0].[ProductID],[t0].[ProductName],[t0].[SupplierID],[t0].[CategoryID],[t0].[QuantityPerUn

4、it],[t0].[UnitPrice],[t0].[UnitsInStock],[t0].[UnitsOnOrder],[t0].[ReorderLevel],[t0].[Discontinued]FROM[dbo].[Products]AS[t0]LEFTOUTERJOIN[dbo].[Suppliers]AS[t1]ON[t1].[SupplierID]=[t0].[SupplierID]WHERE([t1].[Country]=@p0)AND([t0].[UnitsInStock]=@p1)--@

5、p0:InputNVarChar(Size=3;Prec=0;Scale=0)[USA]--@p1:InputInt(Size=0;Prec=0;Scale=0)[0]2.多对多关系(ManytoMany):varq=fromeindb.Employeesfrometine.EmployeeTerritorieswheree.City=="Seattle"selectnew{e.FirstName,e.LastName,et.Territory.TerritoryDescription};说明:多对多关系

6、一般会涉及三个表(如果有一个表是自关联的,那有可能只有2个表)。这一句语句涉及Employees,EmployeeTerritories,Territories三个表。它们的关系是1:M:1。Employees和Territories没有很明确的关系。语句描述:这个例子在From子句中使用外键导航筛选在西雅图的雇员,同时列出其所在地区。这条生成SQL语句为:SELECT[t0].[FirstName],[t0].[LastName],[t2].[TerritoryDescription]FROM[dbo]

7、.[Employees]AS[t0]CROSSJOIN[dbo].[EmployeeTerritories]AS[t1]INNERJOIN[dbo].[Territories]AS[t2]ON[t2].[TerritoryID]=[t1].[TerritoryID]WHERE([t0].[City]=@p0)AND([t1].[EmployeeID]=[t0].[EmployeeID])--@p0:InputNVarChar(Size=7;Prec=0;Scale=0)[Seattle]3.自联接关系:v

8、arq=frome1indb.Employeesfrome2ine1.Employeeswheree1.City==e2.Cityselectnew{FirstName1=e1.FirstName,LastName1=e1.LastName,FirstName2=e2.FirstName,LastName2=e2.LastName,e1.City};语句描述:这个例子在select子句中使用外键导航筛选成对的雇员,每对中一个雇

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。