演练:创建 Adventure Works 销售模型和查询 (Visual Basic)

本演练提供了复杂性最低的基本端对端 LINQ to Entities 方案。您将创建 AdventureWorks 销售模型,其中包含基于 AdventureWorks 示例数据库中的 Address、Contact、Product、SalesOrderHeader 和 SalesOrderDetail 表的实体和关联。然后,您将创建一个简单查询来列出 AdventureWorks 库存中的所有红色产品。

系统必备

本演练需要 AdventureWorks 示例数据库。如果您的开发计算机上没有此数据库,您可以从 CodePlex 网站的 Microsoft SQL Server Community & Samples(Microsoft SQL Server 社区和示例)网页上下载该数据库。

概述

本演练由 4 项主要任务组成:

  • 在 Visual Studio 2008 中创建 LINQ to Entities 解决方案。

  • 创建 AdventureWorks 销售模型。

  • 创建对该销售模型运行的简单查询。

  • 执行查询并观察结果。

创建 LINQ to Entities 解决方案

在这第一项任务中,您将创建一个 Visual Studio 解决方案,其中包含生成和运行 LINQ to Entities 项目所必需的引用。

创建 Visual Basic LINQ to Entities 解决方案

  1. 在 Visual Studio “文件”菜单上,指向“新建”,再单击**“项目”**。

  2. 在**“新建项目”对话框的“项目类型”窗格中,单击“Visual Basic”**。

  3. 从下拉菜单中选择**“.NET Framework 3.5”**。

  4. 在**“模板”窗格中,单击“控制台应用程序”**。

  5. 在**“名称”框中,键入“LinqToEntitiesConsoleApp”**。

  6. 在**“位置”框中,选择用于存储项目文件的位置,再单击“确定”**。

  7. 在**“项目”菜单上,单击“添加引用”,单击“.NET”选项卡,单击“System.Data.Entity”程序集,然后单击“确定”**。

  8. 在源代码文件中添加用于 System.Data.Objects 命名空间的 using 指令。

创建 AdventureWorks 销售模型

在此任务中,您将使用 实体数据模型 向导创建 AdventureWorks 销售模型,并在项目中引用该模型。

创建并引用 AdventureWorks 销售模型

  1. 在**“项目”菜单上单击“添加新项”**

  2. 在**“添加新项”对话框的“模板”窗格中,选择“ADO.NET 实体数据模型”。将模型命名为“AdventureWorksSalesModel”,然后单击“添加”**。

  3. 在**“选择模型内容”对话框中,选择“从数据库生成”,然后单击“下一步”**。

  4. 在**“选择您的数据连接”**窗口中,从列表中选择现有 AdventureWorks 连接,或者创建一个到具有 AdventureWorks 示例数据库的 SQL Server 实例的连接。

  5. 将 App.Config 中的实体连接设置另存为**“AdventureWorksEntities”,然后单击“下一步”**。

  6. 在**“选择数据库对象”对话框中,清除所有对象,展开“表”**,然后选择以下表对象:

    • Address (Person)

    • Contact (Person)

    • Product (Production)

    • SalesOrderDetail (Sales)

    • SalesOrderHeader (Sales)

  7. 将此模型命名空间命名为**“AdventureSalesWorksModel”,然后单击“完成”**。

  8. **“模型浏览器”视图打开,其中显示 AdventureWorks 销售模型中的实体。单击保存按钮,然后选择“Module1.vb”**选项卡转回源代码。

  9. 向源文件添加用于**“AdventureWorksSalesModel”**的 Imports 语句。

创建简单查询

此步骤中,您将创建一个查询来查找 AdventureWorks 库存中的红色产品。如果将查询设计为返回一系列值,则查询变量仅存储查询命令。查询的实际执行将推迟到在 For Each 循环中循环访问查询变量之后进行。这种方法称为“延迟执行”**。有关更多信息,请参见查询执行

创建简单查询

  • 将下面的代码键入或粘贴到 Main 方法中。
Using AWEntities As New AdventureWorksEntities()
    Dim products = AWEntities.Product

    Dim query = From product In products _
            Where product.Color = "Red" _
            Select product

    For Each product As 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("")
    Next
End Using

' Prevent the console window from closing.
Console.WriteLine("Hit Enter...")
Console.Read()

执行查询

在此步骤中,您将实际执行查询。您在前面步骤中创建的查询表达式只有在需要结果时才会进行计算。开始 For Each 循环访问时,将对 AdventureWorks 销售模型执行查询,并使结果具体化。

执行查询

  1. 按 F5 以调试模式执行应用程序。

  2. 查询结果应出现在控制台窗口中。

  3. 在控制台窗口中按 Enter 关闭应用程序。

另请参见

任务

如何:使用实体数据模型向导(实体框架)

概念

LINQ to Entities 概述