本演練提供了複雜性最小的基本端對端 LINQ to Entities 方案。您將建立 AdventureWorks 銷售模型,其中包含基於 AdventureWorks 樣本資料庫中的 Address、Contact、Product、SalesOrderHeader 和 SalesOrderDetail 表的實體和關聯。然後,您將建立一個簡單查詢來列出 AdventureWorks 庫存中的所有紅色產品。
系統必備
本演練需要 AdventureWorks 樣本資料庫。如果您的開發電腦上沒有此資料庫,您可以從 CodePlex 網站的 Microsoft SQL Server Community & Samples(Microsoft SQL Server 社區和樣本)網頁上下載該資料庫。
概述
本演練由 4 項主要工作群組成:
建立 LINQ to Entities 解決方案
在這第一項任務中,您將建立一個 Visual Studio 解決方案,其中包含產生和運行 LINQ to Entities 項目所必需的引用。
建立 C# LINQ to Entities 解決方案
在 Visual Studio “檔案”菜單上,指向“建立”,再單擊“項目”。
在“建立項目”對話方塊的“項目類型”窗格中,單擊“Visual C#”。
從下拉式功能表中選擇“.NET Framework 3.5”。
在“模板”窗格中,單擊“控制台應用程式”。
在“名稱”框中,鍵入“LinqToEntitesConsoleApp”。
在“位置”框中,選擇用於儲存專案檔的位置,再單擊“確定”。
在“項目”菜單上,單擊“添加引用”,單擊“.NET”選項卡,單擊“System.Data.Entity”程式集,然後單擊“確定”。
在原始碼檔案中添加用於 System.Data.Objects 命名空間的 using 指令。
建立 AdventureWorks 銷售模型
在此任務中,您將使用 實體資料模型 嚮導建立 AdventureWorks 銷售模型,並在項目中引用該模型。
建立並引用 AdventureWorks 銷售模型
在“項目”菜單上單擊“添加新項”。
在“添加新項”對話方塊的“模板”窗格中,選擇“ADO.NET 實體資料模型”。將模型命名為“AdventureWorksSalesModel”,然後單擊“添加”。
在“選擇模型內容”對話方塊中,選擇“從資料庫產生”,然後單擊“下一步”。
在“選擇您的資料連線”視窗中,從列表中選擇現有 AdventureWorks 串連,或者建立一個到具有 AdventureWorks 樣本資料庫的 SQL Server 執行個體的串連。
將 App.Config 中的實體串連設定另存新檔“AdventureWorksEntities”,然後單擊“下一步”。
在“選擇資料庫物件”對話方塊中,清除所有對象,展開“表”,然後選擇以下表對象:
Address (Person)
Contact (Person)
Product (Production)
SalesOrderDetail (Sales)
SalesOrderHeader (Sales)
將此模型命名空間命名為“AdventureSalesWorksModel”,然後單擊“完成”。
“模型瀏覽器”視圖開啟,其中顯示 AdventureWorks 銷售模型中的實體。單擊儲存按鈕,然後選擇“Program.cs”選項卡轉回原始碼。
在源檔案中添加用於“AdventureWorksSalesModel”的 using 語句。
建立簡單查詢
此步驟中,您將建立一個查詢來尋找 AdventureWorks 庫存中的紅色產品。如果將查詢設計為返回一系列值,則查詢變數僅儲存查詢命令。查詢的實際執行將延遲到在 foreach 迴圈中逐一查看查詢變數之後進行。這種方法稱為“順延強制”。有關更多資訊,請參見查詢執行。
建立簡單查詢
C#
複製代碼
using (AdventureWorksEntities AWEntities = new AdventureWorksEntities()){ ObjectQuery<Product> products = AWEntities.Product; IQueryable<Product> query = from product in products where product.Color == "Red" select product; foreach (Product product in query) { Console.WriteLine("Name: {0}", product.Name); Console.WriteLine("Product number: {0}", product.ProductNumber); Console.WriteLine("List price: ${0}", product.ListPrice); Console.WriteLine(""); }}//Prevent the console window from closing.Console.WriteLine("Hit Enter...");Console.Read();
執行查詢
在此步驟中,您將實際執行查詢。您在前面步驟中建立的查詢運算式只有在需要結果時才會進行計算。當您開始 foreach 迭代時,將對 AdventureWorks 銷售模型執行查詢,並且結果將具體化。
執行查詢
按 F5 以偵錯模式執行應用程式。
查詢結果應出現在控制台視窗中。
在控制台視窗中按 Enter 關閉應用程式。
另請參見
任務
如何:使用實體資料模型嚮導(Entity Framework)
概念
LINQ to Entities 概述