程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> LINQ體驗(6)——LINQ to SQL語句之Join和Order By

LINQ體驗(6)——LINQ to SQL語句之Join和Order By

編輯:關於ASP.NET

Join操作

適用場景:在我們表關系中有一對一關系,一對多關系,多對多 關系等。對各個表之間的關系,就用這些實現對多個表的操作。

說明: 在Join操作中,分別為Join(Join查詢), SelectMany(Select一對多選擇)和 GroupJoin(分組Join查詢)。

該擴展方法對兩個序列中鍵匹配的元素進行 inner join操作

SelectMany

說明:我們在寫查詢語句時,如果被翻譯 成SelectMany需要滿足2個條件。1:查詢語句中沒有join和into,2:必須出現 EntitySet。在我們表關系中有一對一關系,一對多關系,多對多關系等,下面 分別介紹一下。

1.一對多關系(1 to Many):var q =
   from c in db.Customers
  from o in c.Orders
  where c.City == "London"
  select o;

語句描述 :Customers與Orders是一對多關系。即Orders在Customers類中以EntitySet形 式出現。所以第二個from是從c.Orders而不是db.Orders裡進行篩選。這個例子 在From子句中使用外鍵導航選擇倫敦客戶的所有訂單。

var q =
  from p in db.Products
  where p.Supplier.Country == "USA" && p.UnitsInStock == 0
  select p;

語句描述:這一句使用了p.Supplier.Country條件,間接關聯 了Supplier表。這個例子在Where子句中使用外鍵導航篩選其供應商在美國且缺 貨的產品。生成SQL語句為:

SELECT [t0].[ProductID], [t0]. [ProductName], [t0].[SupplierID],
[t0].[CategoryID],[t0]. [QuantityPerUnit],[t0].[UnitPrice],
[t0].[UnitsInStock], [t0]. [UnitsOnOrder],[t0].[ReorderLevel],
[t0].[Discontinued] FROM [dbo].[Products] AS [t0]
LEFT OUTER JOIN [dbo].[Suppliers] AS [t1] ON
[t1].[SupplierID] = [t0].[SupplierID]
WHERE ([t1]. [Country] = @p0) AND ([t0].[UnitsInStock] = @p1)
-- @p0: Input NVarChar (Size = 3; Prec = 0; Scale = 0) [USA]
-- @p1: Input Int (Size = 0; Prec = 0; Scale = 0) [0]

2.多對多關系(Many to Many):var q =
  from e in db.Employees
  from et in e.EmployeeTerritories
  where e.City == "Seattle"
  select new
  {
     e.FirstName,
    e.LastName,
     et.Territory.TerritoryDescription
  };

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved