在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(Part2) 转
生活随笔
收集整理的這篇文章主要介紹了
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(Part2) 转
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
LINQ to SQL LINQ to SQL 提供了訪問數據庫的方法,且允許我們做所有數據庫相關的操作,如查詢、插入、更新和刪除。LINQ to SQL消除了寫存儲過程和從數據訪問層調用的過程,它可以在運行的時候自動生成合適的SQL腳本來進行數據庫操作。在Visual studio中,你可以通過使用Add New Item 增加LINQ to SQL文件到項目中。下圖1.4是Northwind數據庫在Object Relational Designer 中的顯示(EntLib.com 開源小組注:原文采用SampleDB數據庫,這里我們采用Northwind 范例數據庫)。當保存該文件時,LINQ to SQL自動創建一個CS文件或VB文件 – 用來訪問數據庫的DataContext類,還為設計器中的表創建一些必要的實體類。在設計器中的每一個表均有一個對應的實體類。 設計器中的表包含所有的數據庫屬性,包括表關系。設計器中的箭頭標識表示數據庫表的主鍵/外鍵關系。 EntLib.com 開源小組注:這里我們創建C# 項目,而不是原文采用的VB項目,因此后續的示例代碼全部為C#,原文為VB代碼。 DataContext 類 Solution 中的每一個LINQ to SQL設計器將自動創建一個DataContext類,用來查詢數據庫、檢索數據記錄和更新數據庫操作的主要類,它包含了每一個表的屬性。 實體類 LINQ to SQL為添加到設計器(.dbml文件)中的每一個表創建對應的實體類,這些實體類包含了強類型屬性集合,映射到數據庫中對應表的字段。LINQ to SQL使用這些實體類來生成數據操作的SQL腳本,同時,我們也可以創建實體類的實例,給實例賦值,然后在不同的層之間作為數據傳輸對象進行傳遞。(EntLib.com 開源小組注:這些實體類并不適合在WCF Service與Client 作為DTO傳遞,因為WCF對傳輸的實體類有特殊的attribute要求。對WCF Data Contract的要求,請您參加相關的文檔。) 映射Mapping DataContext類中的實體類和屬性直接映射到對應數據表和字段。缺省情況下,在DataContext類中,LINQ使用繼承抽象類MappingSource的AttributedMappingSource類來存放表和字段的映射信息,從數據庫中檢索記錄和提交數據更新到數據庫時需要這些映射信息。 重新生成DataContext類 當數據庫表設計發生變化時,必須更新DataContext類。我們建議在任何修改/更新數據表時,重新生成整個DataContext類。首先,刪除DataContext 類文件(C# / VB文件);然后保存該文件,并自動DataContext類。或者你右鍵點擊.dbml文件,找到Run Custom Tool 選項,然后點擊重新生成DataContext類文件。 創建Data Linq 層 下圖1.2顯示Data Linq層,包含了DataContext類和實體類。這些類對應的代碼文件由Visual studio自動生成。
圖1.2:Data Linq 層 – 詳細視圖 在solution中增加一個類庫Class Library項目,然后增加LINQ to SQL到項目中。下圖是Visual Studio 2008 增加一個新的LINQ to SQL的截屏,并在窗口中選擇LINQ to SQL選項。
圖1.3: 增加LINQ to SQL類 增加LINQ to SQL到項目中,將自動創建一個空白的設計器(.dbml文件),并附有server explorer的鏈接,同時也創建相關的dbml.layout文件(XML文件)和designer.cs文件(DataContext類文件 – http://www.EntLib.com 開源小組注:原文為VB文件)。打開server explorer,并建立到數據庫的鏈接,然后導航到合適的數據庫和表,接著拖放相關的表到設計器表面。最后,保存文件。現在,已經自動生成了包含相關的屬性、方法的DataContext類和實體類。 為了演示的需要,我將使用Northwind 范例數據庫(http://www.EntLib.com 開源小組注:原文采用自定義的sample數據庫)。根據如下表結構,我們可以了解如何創建CURD操作層。如下圖1.4顯示含有這些表的dbml文件:
圖1.4:LINQ to SQL設計器 - .dbml文件 下圖1.5 是DataContext類和實體類的Class Diagram:
圖1.5:Data LINQ – Class Diagram 注:DataContext 類自動負責打開數據庫連接,執行數據操作和關閉連接。 EntLib.com 開源小組注:本文翻譯《Building Multi-Tier Web Application in .NET 3.5 Framework Using LINQ to SQL》。后面內容待續。歡迎交流LINQ相關技術。
圖1.2:Data Linq 層 – 詳細視圖 在solution中增加一個類庫Class Library項目,然后增加LINQ to SQL到項目中。下圖是Visual Studio 2008 增加一個新的LINQ to SQL的截屏,并在窗口中選擇LINQ to SQL選項。
圖1.3: 增加LINQ to SQL類 增加LINQ to SQL到項目中,將自動創建一個空白的設計器(.dbml文件),并附有server explorer的鏈接,同時也創建相關的dbml.layout文件(XML文件)和designer.cs文件(DataContext類文件 – http://www.EntLib.com 開源小組注:原文為VB文件)。打開server explorer,并建立到數據庫的鏈接,然后導航到合適的數據庫和表,接著拖放相關的表到設計器表面。最后,保存文件。現在,已經自動生成了包含相關的屬性、方法的DataContext類和實體類。 為了演示的需要,我將使用Northwind 范例數據庫(http://www.EntLib.com 開源小組注:原文采用自定義的sample數據庫)。根據如下表結構,我們可以了解如何創建CURD操作層。如下圖1.4顯示含有這些表的dbml文件:
圖1.4:LINQ to SQL設計器 - .dbml文件 下圖1.5 是DataContext類和實體類的Class Diagram:
圖1.5:Data LINQ – Class Diagram 注:DataContext 類自動負責打開數據庫連接,執行數據操作和關閉連接。 EntLib.com 開源小組注:本文翻譯《Building Multi-Tier Web Application in .NET 3.5 Framework Using LINQ to SQL》。后面內容待續。歡迎交流LINQ相關技術。
轉載于:https://www.cnblogs.com/jchen/archive/2009/04/27/1444422.html
總結
以上是生活随笔為你收集整理的在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(Part2) 转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Apache,php,mysql整合安装
- 下一篇: DOT NET 三个名词