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