程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C# 3.0入門系列(十)-之Join操作(4)

C# 3.0入門系列(十)-之Join操作(4)

編輯:關於C語言

第五個例子為composite key.

var q =
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};

這裡,它使用三個表,並且用匿名類來表示它們之間的關系。因為,其之間的關系已經不是一個鍵可以描述清楚的,所以只有用匿名類,表示組合鍵。這個例子有點像SelectMany中的ManyToMany的那個。

還有一種composite key的,就是兩個表之間是用composite key表示關系的。這種情況很簡單,不需像該例中使用匿名類。該例翻譯的T-sql為

SELECT [t0].[OrderID], [t1].[ProductID], [t2].[UnitPrice]
FROM [dbo].[Orders] AS [t0], [dbo].[Products] AS [t1], [dbo].[Order Details] AS [t2]
WHERE ([t0].[OrderID] = [t2].[OrderID]) AND ([t1].[ProductID] = [t2].[ProductID])
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 2.0.20612.0

最後一個例子,沒有看出什麼好玩的來,不講了。

寫到這裡,c#3.0的入門系列已經接近尾聲了。我們一起學習了Dlinq的最基本操作。還剩下Union, In, Like還有一些聚合函數等操作。將會在下面幾章中介紹。不知道大家對什麼還感興趣的,或者我能夠提供幫助的,盡管問。

關於Linq To Sql 中的,Create, update, Delete 操作,以及Store procedure 及UDF等,更像是運用函數,而不是語言。所以,不在C#語言中講。在考慮是不是開個什麼Linq To Sql的深入應用。

寫blog是對自己個人知識的總結,也是對自己表達功底的考驗。因本人水平有限,錯誤再所難免,還請大家指出並諒解。

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