【问题标题】:Entity framework6 one to one navigation property实体框架6一对一导航属性
【发布时间】:2016-02-26 18:22:38
【问题描述】:

当导航属性中没有其父项的键时,如何映射它?

我是说

有一个类合同。 这是一份产品销售合同,需要产品存在。 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,
)

我希望我的班级 Product 有它所链接的合同,如果有的话。

我首先使用代码。如何在 EF6 上映射它?

【问题讨论】:

    标签: mapping entity-framework-6 one-to-many one-to-one


    【解决方案1】:

    无法将其映射为一对一关联。这是一个一对多的关联设计。因此,如果有的话,设计应该改变以使其成为一对一的。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多