2016-02-26 118 views
0

如何在没有其父项的键时映射导航属性?实体框架6一对一导航属性

我的意思是

有一类合同。 这是销售产品的合同,需要产品存在。 TB_Contract包含ProductId。 该产品没有合同,TB_product上没有ContractId。

在某些情况下,该产品可以在多个合同中,这就是为什么它已经在bd中建模为多对一。但是在我们的课程中,它必须是一对一的

public class Contract 
{ 
    ... 
    public Product Product { get; set; } 
    ... 
} 

public class Product 
{ 
    ... 
    public Contract Contract { get; set; } 
    ... 
} 

table tb_Contract 
(
    idContract, 
    idProduct 
) 

table tb_Product 
(
    idProduct, 
    description, 
) 

我想要我的课程产品具有链接到的合同,如果有的话。

我先使用代码。如何将其映射到EF6上?

回答

0

没有办法将此映射为一对一关联。这是一个一对多协会设计。所以如果有的话,设计应该改变,以使其一对一。

实体框架通过a foreign key that's also a primary key模拟一对一关联。任何其他的一对一关联方式都是通过业务逻辑强制实施的。

在代码中,这意味着Product有一个Orders的集合和一个检查此集合中项目数的验证规则。