创建 LINQ to SQL 类:使用 O/R 设计器

更新:2007 年 11 月

使用对象关系设计器(O/R 设计器)可以将 LINQ to SQL 类映射到数据库中的表。这些映射的类也称为“实体类”。 实体类的属性映射到表的列,您可以将数据绑定到 Windows 窗体上的控件。若要了解有关 LINQ to SQL 的更多信息,请参见在 Visual Basic 速成版中使用 LINQ

在本课中,您将学习如何使用 O/R 设计器创建映射到 Northwind 数据库中的表的实体类。然后将在 Windows 窗体应用程序上显示数据。

先决条件

  • 如果在安装 Visual Basic 速成版时未安装 SQL Server Express Edition,则必须在继续下面的步骤前进行安装。LINQ to SQL 中不支持 SQL Server Compact 3.5 数据库。有关如何获取 SQL Server Express Edition 的信息,请参见如何:安装示例数据库中的“获取 SQL Server Express Edition”部分。

  • 若要完成本课,必须能够访问 SQL Server 版本的 Northwind 示例数据库。有关更多信息,请参见如何:安装示例数据库

试一试!

打开 O/R 设计器

  1. 在“文件”菜单上单击“新建项目”。

  2. 在“新建项目”对话框中的“模板”窗格中,单击“Windows 窗体应用程序”,将项目命名为“LINQToSQLSample”,然后单击“确定”。

    一个新的 Windows 窗体项目随即打开。

  3. 在“项目”菜单上单击“添加新项”。

  4. 单击“LINQ to SQL 类”模板,然后在“名称”框中键入“NorthwindSample.dbml”。

  5. 单击“添加”。

    一个空的“LINQ to SQL 文件”(Northwind.dbml) 即被添加到该项目中,并且 O/R 设计器将打开。

O/R 设计器由两个设计图面组成:左侧的“实体”窗格,以及右侧的“方法”窗格区域。“实体”窗格是主设计图面,其中显示在文件中定义的实体类。“方法”窗格是显示映射到存储过程和函数的 DataContext 方法的设计图面。通过右击 O/R 设计器,然后单击“隐藏方法窗格”,可以隐藏“方法”窗格。在本课中不会使用“方法”窗格,但是您可以在 DataContext 方法(O/R 设计器)中了解有关该窗格的更多信息。

单击主设计图面,并通过在“属性窗口”中查看“名称”属性来验证其名称是否为 NorthwindSampleDataContext。通过将数据库表从“数据库资源管理器”拖动到 O/R 设计器图面上,可以创建实体类。但是必须先创建到数据库的连接。此过程与获取所需的信息:连接到现有的数据库中介绍的过程类似,只不过在本课中会使用 SQL Server Express 数据库。

连接到 Northwind 数据库

  1. 在“视图”菜单上单击“数据库资源管理器”。

    “数据库资源管理器”随即打开。

  2. 在“数据库资源管理器”工具栏中单击“连接到数据库”按钮。

  3. 在“选择数据源”窗口中单击“Microsoft SQL Server 数据库文件”,然后单击“继续”。

    “添加连接”对话框随即打开。

  4. 在“添加连接”对话框中,确保数据源为“Microsoft SQL Server 数据库文件 (SqlClient)”。

  5. 单击“浏览”,然后找到并选择“Northwind.mdf”数据库。单击“打开”。

  6. 单击“测试连接”以验证连接是否成功。

  7. 单击“确定”关闭“添加连接”对话框。

创建实体类

现在,Northwind 数据库中的表在“数据库资源管理器”中是可见的。可以将这些表从“数据库资源管理器”拖到“O/R 设计器”上。这会自动创建实体类,这些实体类的属性映射到从“数据库资源管理器”中拖动的表中的列。

创建实体类

  1. 在“数据库资源管理器”中,展开“Northwind.mdf”,然后展开“表”。

  2. 将“Customers”从“数据库资源管理器”拖到 O/R 设计器图面上。如果系统提示是否将数据文件复制到项目中,请单击“是”。

    将创建一个名为“Customer”的实体类。该类具有与“Customers”表中的列相对应的属性。

  3. 将“Orders”从“数据库资源管理器”拖到 O/R 设计器图面上。

    将创建一个名为“Order”的实体类,该类与“Customer”实体类之间具有关联(关系)。该类的属性与“Orders”表中的列相对应。

现在已创建了实体类,您可以通过运行“数据源配置向导”将这些类添加到“数据源”窗口中。

将实体类作为对象数据源添加到“数据源”窗口中

  1. 在“生成”菜单上单击“生成 LINQToSQLSample”。

  2. 在“数据”菜单上单击“显示数据源”。

  3. 在“数据源”窗口中,单击“添加新数据源”。

  4. 单击“选择数据源类型”页上的“对象”,然后单击“下一步”。

  5. 展开“LINQToSQLSample”节点,并找到“Customer”类。

    说明:

    如果“Customer”类不可用,则单击“取消”,生成项目,然后重新运行向导。

  6. 单击“完成”以创建数据源并将“Customer”实体类添加到“数据源”窗口。

将 Windows 窗体上的控件绑定到实体类

通过将表或字段从“数据源”窗口拖到 Windows 窗体上,可以将被数据绑定到实体类的控件添加到该窗体中。

添加绑定到实体类的控件

  1. 在“解决方案资源管理器”中右击 Form1,然后单击“视图设计器”。

  2. 在“数据源”窗口中,展开“Customer”。

  3. 单击“CompanyName”旁边的下拉箭头,然后单击“Label”。

  4. 将“CompanyName”拖到窗体上。

    这会将一个标签和一个导航工具栏添加到窗体上。

  5. 将“Orders”从“数据源”窗口拖到 Form1 中。将其放置在“CompanyName”下方。

  6. 在“解决方案资源管理器”中右击 Form1,然后单击“查看代码”。

  7. 将下面的代码添加到窗体中 Form 类的顶部,任何特定方法之外。

    Private NorthwindSampleDataContext1 As New _
        NorthwindSampleDataContext
    
  8. 双击该窗体,为 Form_Load 事件创建一个事件处理程序。将以下代码添加到事件处理程序中:

    CustomerBindingSource.DataSource = _
        NorthwindSampleDataContext1.Customers()
    
  9. 按 F5 运行代码。

  10. 当窗体打开时,在工具栏上单击“移到下一条”按钮,滚动浏览公司并验证订单数据是否已更新为显示选定客户的订单。

保存更改

在将控件添加到 O/R 设计器时,导航工具栏上的“保存数据”按钮并未启用。若要使用户可以保存更改,必须先启用“保存”按钮,然后添加用于保存已更改数据的代码。

启用保存按钮

  1. 在“设计”视图中,选择导航工具栏上的保存按钮。(该按钮带有软盘图标。)

  2. 在“属性”窗口中,将“Enabled”属性设置为“True”。

  3. 双击保存按钮创建一个事件处理程序并切换到代码编辑器。

  4. 将下面的代码添加到保存按钮事件处理程序中:

    NorthwindSampleDataContext1.SubmitChanges()
    
  5. 按 F5 运行代码。

  6. 更改某一 Shipped Date 字段中的值,然后按 Tab 键提交更改。

  7. 单击“保存数据”按钮。

  8. 关闭窗体。

  9. 按 F5,验证所做的更改是否已保存。

后续步骤

在本课中,您学习了如何使用 O/R 设计器创建 LINQ to SQL 类。在下一课中,您将学习如何使用 LINQ 查询绑定数据。若要了解有关如何在应用程序中使用 LINQ 的更多信息,请参见在 Visual Basic 速成版中使用 LINQ

下一课:使用 LINQ 将数据绑定到控件

请参见

任务

存储和访问数据

显示相关数据

演练:创建 LINQ to SQL 类(O/R 设计器)

概念

在 Visual Basic 速成版中使用 LINQ

O/R 设计器概述

其他资源

管理记录:在程序中使用数据