以Northwind库为例,新建LINQ TO SQL Classes,我们将表Suppliers和Products拖进新建的dbml文件设计界面。
默认情况下,IDE自动生成的映射关系为1:N.即Cardinality属性为OneToMany即1:N。
如果我们想改为1:1则可选中表关系(图中空心实心箭头),修改Cardinality属性为OneToOne。
但是IDE会报错:Error 1 Cannot create an association "Supplier_Product". Properties do not have matching types: "SupplierID", "SupplierID".
这个错误说明主表主键和从表的外键字段类型不一致,检查发现果然是Products表的外键字段SupplierID为可空类型而主表Suppliers的主键字段为不可空类型。
修改dbml中Products表的SupplierID的Nullable属性为False,然后修改Cardinality属性为OneToOne,成功!