逐步解說:建立 Adventure Works Sales Model 和查詢 (C#)
此逐步解說提供複雜性最低的基礎端對端 LINQ 到實體 案例。您將會建立 AdventureWorks Sales Model,它包含以範例 AdventureWorks 資料庫中 Address、Contact、Product、SalesOrderHeader 和 SalesOrderDetail 資料表為基礎的實體和關聯。然後再建立一個簡單查詢,用來列出 AdventureWorks 庫存中的所有紅色產品。
必要條件
此逐步解說需要用到 AdventureWorks 範例資料庫。如果您的電腦上沒有這個資料庫,請從 CodePlex 網站上的 Microsoft SQL Server 社群與範例 (英文)網頁下載。
概觀
此逐步解說包含四項主要工作:
在 Visual Studio 2008 中建立 LINQ 到實體 方案。
建立 AdventureWorks Sales Model。
建立針對 Sales Model 執行的簡單查詢。
執行查詢並觀察結果。
建立 LINQ to Entities 方案
在第一項工作中,您要建立一個包含建置與執行 LINQ to Entities 專案所需參考的 Visual Studio 方案。
建立 C# LINQ to Entities 方案
在 Visual Studio [檔案] 功能表上,指向 [新增],然後按一下 [專案]。
在 [新增專案] 對話方塊的 [專案類型] 窗格中,按一下 [Visual C#]。
從下拉式功能表選取 [.NET Framework 3.5]。
在 [範本] 窗格中,按一下 [主控台應用程式]。
在 [名稱] 方塊中,輸入 LinqToEntitesConsoleApp。
在 [位置] 方塊中,選取專案檔案的位置,然後按一下 [確定]。
在 [專案] 功能表上,依次按一下 [加入參考]、[.NET] 索引標籤、[System.Data.Entity] 組件,然後再按 [確定]。
將 System.Data.Objects 命名空間的 using 指示詞加入到您的原始程式碼檔案。
建立 AdventureWorks Sales Model
在這項工作中,您要使用 實體資料模型 精靈建立 AdventureWorks Sales Model,並且在您專案中參考此模型。
建立及參考 AdventureWorks Sales Model
在 [專案] 功能表上,按一下 [加入新項目]。
在 [加入新項目] 對話方塊的 [範本] 窗格中,選取 [ADO.NET 實體資料模型]。將此模型命名為 AdventureWorksSalesModel,然後按一下 [加入]。
在 [選擇模型內容] 對話方塊中,選取 [從資料庫產生],然後按一下 [下一步]。
在 [選擇您的資料連接] 視窗中,從清單中選取現有的 AdventureWorks 連接,或者建立一個連接到有 AdventureWorks 範例資料庫的 SQL Server 執行個體的新連接。
將此實體連接設定以 AdventureWorksEntities 名稱儲存在 App.Config 中,然後按一下 [下一步]。
在 [選擇您的資料庫物件] 對話方塊中,清除所有物件、展開 [資料表],然後選取下列資料表物件:
Address (Person)
Contact (Person)
Product (Production)
SalesOrderDetail (Sales)
SalesOrderHeader (Sales)
將此模型命名空間命名為 AdventureSalesWorksModel,然後按一下 [完成]。
[模型瀏覽器] 檢視便會開啟,顯示 AdventureWorks Sales Model 中的實體。按一下儲存按鈕並且選取 [Program.cs] 索引標籤巡覽回到原始程式碼。
將 AdventureWorksSalesModel 的 using 陳述式加入到您的原始程式碼檔案。
建立簡單查詢
在這個步驟中,您要建立一個從 AdventureWorks 庫存尋找紅色產品的查詢。如果查詢是設計成要傳回值的序列,則查詢變數只會儲存查詢命令。查詢的實際執行必須等到您在 foreach 迴圈中重複處理查詢變數才會進行。這種方式就是所謂的*「延後執行」*。如需詳細資訊,請參閱查詢執行。
建立簡單查詢
- 將下列程式碼輸入或貼到
Main
方法中。
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 Sales Model 執行,並且將結果具體化。
執行查詢
按 F5 會以偵錯模式執行此應用程式。
查詢結果應該會出現在主控台視窗中。
在主控台視窗中按 ENTER 即可關閉應用程式。
另請參閱
工作
HOW TO:使用 Entity Data Model 精靈 (Entity Framework)