【问题标题】:EF relationship based on FK to compound PK基于 FK 与复合 PK 的 EF 关系
【发布时间】:2013-08-30 15:45:48
【问题描述】:

我有以下表格:

  • 销售(ID,...)
  • 产品(ID,...)
  • ProductSales (ProductID, SaleID, ...)

基本上,销售是在特定日期组织的,并且产品可以进行销售(可能同时进行多个销售)。

现在,当用户将产品添加到购物车时,我会记录产品 ID 和销售 ID。

  • CartItems (ProductID, SaleID, ...)

所以一个 CartItem 指向一个产品以及一个销售。但是由于(ProductID, SaleID)是ProductSales的主键,所以也可以说CartItem指向一个ProductSale。

这种关系(访问 ProductSale)可以映射到实体框架(v5,数据库优先)中吗?

【问题讨论】:

  • 你的意思是同一张表上有多个外键?
  • 如果你要去database-first,尝试打开设计器,从数据库创建,检查生成的模型,看看你是否喜欢结果。
  • 我已经这样做了,但是设计师创建了一个与 Products 的关系,另一个与 Sales 而不是 ProductSales。

标签: .net entity-framework entity-framework-5


【解决方案1】:

好的,我解决了。当您从数据库更新模型时,不会自动创建关联,但可以手动添加。

  • 右键单击设计器并选择添加关联
  • 在左侧选择具有 Many 多重性的 CartItem 实体,在左侧选择具有1 的多重性。根据需要命名导航属性。
  • 在设计器中选择关联并转到其属性。
  • Referential Constraint中,将Principal设置为ProductSale,并将Dependent设置为CartItem。在下面的键映射中,将 SaleID 映射到 SaleID 并将 ProductID 映射到 ProductID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 2010-09-24
    • 1970-01-01
    相关资源
    最近更新 更多