LINQ to SQL構造數據庫淺析
在向大家詳細介紹LINQ to SQL構造數據庫之前,首先讓大家了解下LINQ to SQL概念,然后全面介紹LINQ to SQL構造數據庫。
LINQ to SQL概念
什么是LINQ to SQL? LINQ to SQL 是O/RM(對象關系映射)在.NET Framework“Orcas" release中的的一種實現,它允許你用.NET 的類來生成一個關系型的數據庫。然后你可以用LINQ對從該對象中對數據庫進行查詢,更新/插入/刪除。LINQ to SQL完全支持事務,視圖和存儲過程。它還提供了一種方便地在你的數據模型中對集合數據驗證和業務邏輯規則的進行驗證的方法。
LINQ to SQL構造數據庫
VS "Orcas"中內置了一個提供了一種簡單地將數據庫可視化地轉換為LINQ to SQL關系模型的設計器。我下一篇博客將會更深入一些來介紹怎么使用該設計器(你可以看這個我在1月份錄制地關于如何使用它的錄像)
通過LINQ to SQL設計器我可以方便地設計出如下的作為事例的"Northwind"數據庫模型:
上圖定義了四個實體類:Product, Category, Order and OrderDetail. 每個類的屬性都映射到數據庫中相應的表中。每個類的實例代表了數據表中的一行記錄。
在上圖中,四個實體類中的箭頭代表了各個實體之間的關系。它們主要是根據數據庫中的主鍵/外鍵關系生成的。設計器上的箭頭的指向表明了該關系是一對一還是一對多的關系?;诖?,強類型的屬性將會被加入到此實體類中。例如,上邊的Category類和Product類之間有一個“一對多”的關系。這意味著我可以有一個"Categories"屬性,該屬性代表了所有的在該類中的產品對象集合。Product類將會有一個"Category"屬性來指向一個Category 類的實例,該Category類的實例表明了了產品所屬的類別。
LINQ to SQL設計器的右側是跟我們的數據庫模型交互的存儲過程。上邊的例子中我添加了一個“GetProductsByCategory”存儲過程。它有一個categoryID作為輸入參數,返回一個產品序列。下面的事例代碼將展示如何調用該存儲過程。以上介紹LINQ to SQL構造數據庫。
【編輯推薦】