Visual Studio 中的 LINQ to SQL 工具支持单表继承,因为它通常在关系系统中实现。 本演练扩展了 How to: Configure inheritance by using the O/R Designer 主题中提供的泛型步骤,并提供一些真实数据来演示如何在 O/R 设计器中使用继承。
在本演练中,你将执行以下任务:
创建数据库表并向其添加数据。
创建 Windows 窗体应用程序。
将 LINQ to SQL 文件添加到项目。
创建新的实体类。
配置实体类以使用继承。
查询继承的类。
在 Windows 窗体上显示数据。
创建要从中继承的表
若要查看继承的工作原理,请创建一个小 Person 表,将其用作基类,然后创建 Employee 继承自该表的对象。
创建基表以演示继承
在 服务器资源管理器 或 数据库资源管理器中,右键单击 “表 ”节点,然后单击“ 添加新表”。
注释
可以使用 Northwind 数据库或任何其他可以向其添加表的数据库。
在 表设计器中,将以下列添加到表中:
列名 数据类型 允许空值 ID int 错误 类型 int 正确 名字 nvarchar(200) 错误 姓氏 nvarchar(200) 错误 Manager int 正确 将 ID 列设置为主键。
保存表并将其命名 为 Person。
将数据添加到表
为了您可以检查继承是否已正确配置,表需要一些数据用于每个类的单表继承。
将数据添加到数据表中
在数据视图中打开表。 (右键单击服务器资源管理器或数据库资源管理器中的 Person 表,然后单击“显示表数据”。
将以下数据复制到表中。 (可以通过在 “结果 ”窗格中选择整行将其复制并粘贴到表中。
ID 类型 名字 姓氏 Manager 1 1 安妮 华莱士 NULL 2 1 卡洛斯 格里洛 NULL 3 1 Yael Peled NULL 4 2 Gatis 奥佐林斯 1 5 2 安德烈亚斯 豪瑟 1 6 2 蒂芬妮 Phuvasate 1 7 2 Alexey Orekhov 2 8 2 Michał Poliszkiewicz 2 9 2 台 怡 2 10 2 Fabricio Noriega 3 11 2 明迪 马丁 3 12 2 Ken 郭 3
创建新项目
创建表后,请创建一个新项目来演示如何配置继承。
创建新的 Windows 窗体应用程序
在 Visual Studio 的“文件”菜单中,依次选择“新建”“项目” 。
在左侧窗格中展开 Visual C# 或 Visual Basic ,然后选择 Windows 桌面。
在中间窗格中,选择 Windows 窗体应用 项目类型。
将项目命名为 InheritanceWalkthrough,然后选择 “确定”。
创建InheritanceWalkthrough项目,并将其添加到解决方案资源管理器。
将 LINQ to SQL 类文件添加到项目
将 LINQ to SQL 文件添加到项目
在 “项目 ”菜单上,单击“ 添加新项”。
单击 LINQ to SQL 类 模板,然后选择“ 添加”。
文件
.dbml已添加到项目中,然后 O/R 设计器 自动打开。
使用 O/R 设计器创建继承
通过将继承对象从工具箱拖动到设计图面来配置继承。
创建继承
在 服务器资源管理器 或 数据库资源管理器中,导航到之前创建的 Person 表。
将 Person 表拖到 O/R 设计器 设计图面上。
将第二个 Person 表拖到 O/R 设计器 上,并将其名称更改为 Employee。
从 Person 对象中删除 Manager 属性。
从 Employee 对象中删除 Type、ID、FirstName 和 LastName 属性。 (换句话说,删除 除 Manager 以外的所有属性。
在工具箱的“对象关系设计器”选项卡中,在 Person 和 Employee 对象之间创建继承。 为此,请单击工具箱中的“继承”项并释放鼠标按钮。 接下来,单击 Employee 对象,然后单击 O/R 设计器中的 Person 对象。 继承行上的箭头随后指向 Person 对象。
单击设计界面上的 “继承” 行。
将 “鉴别器属性”属性 设置为 “类型”。
将 派生类鉴别器值 属性设置为 2。
将 基类鉴别器值 属性设置为 1。
将 “继承默认 ”属性设置为 Person。
构建项目。
查询继承的类并在窗体上显示数据
现在,向查询对象模型中特定类的表单添加一些代码。
创建 LINQ 查询并在窗体上显示结果
将 ListBox 拖到 Form1 上。
双击窗体以创建
Form1_Load事件处理程序。将以下代码添加到
Form1_Load事件处理程序:
测试应用程序
运行应用程序并验证列表框中显示的记录是否为所有员工(其 Type 列中值为 2 的记录)。
测试应用程序
按 F5。
验证是否仅显示其 Type 列中值为 2 的记录。
关闭窗体。 (在 “调试 ”菜单上,单击“ 停止调试”。)