LINQ to SQL 中实体类之间的关联类似于数据库中表之间的关系。 可以使用“关联编辑器”对话框创建实体类之间的关联。
使用“关联编辑器”对话框创建关联时,必须选择父类和子类。 父类是包含主键的实体类;子类是包含外键的实体类。 例如,如果创建映射到 Northwind Customers
和 Orders
表的实体类,则 Customer
类将是父类,而 Order
类将是子类。
注意
将表从服务器资源管理器或数据库资源管理器拖动到对象关系设计器(O/R 设计器)时,,会基于数据库中的现有外键关系自动创建关联。
关联属性
创建关联后,在 O/R 设计器中选择该关联时,“属性”窗口中将有一些可配置属性。 (关联是相关类之间的线。)下表提供了关联属性的说明。
属性 | 说明 |
---|---|
基数 | 控制关联是一对多关系还是一对一关系。 |
子属性 | 指定是否在父类上创建一个属性,作为关联关系外键一方上的子记录的集合或对这些子记录的引用。 例如,在 Customer 和 Order 之间的关联中,如果“子属性”设置为“True”,则将在父类上创建一个名为 Orders 的属性 。 |
Parent 属性 | 子类上引用关联父类的属性。 例如,在 Customer 和 Order 之间的关联中,在 Order 类上创建一个名为 Customer 的属性,用来引用与订单关联的客户。 |
参与的属性 | 显示关联属性,并提供一个省略号按钮 (...),该按钮可重新打开“关联编辑器”对话框。 |
唯一 | 指定外目标列是否具有唯一性约束。 |
创建实体类之间的关联
右键单击表示关联中的父类的实体类,指向添加,然后选择关联。
验证在“关联编辑器”对话框中是否选择了正确的“父类”。
选择组合框中的“子类”。
选择实现类之间的关联的“关联属性”。 通常,这种关联对应于数据库中定义的外键关系。 例如,在
Customers
和Orders
关联中,“关联属性”是每个类的CustomerID
。单击“确定”创建关联。