如何从Enity Framework中的元模型中获取多个到多个关系的实体到表映射

Bai*_*aig 7 mapping entity-framework metadata

有没有什么办法可以让我们在实体框架中加入两个实体的基础"多对多表".

例如,如果我们有Product和Order实体,我们如何获得连接Product和Order表的底层连接表Product_Order.

任何帮助,将不胜感激.

Lad*_*nka 9

可以将联结表暴露为实体,但它不常见/需要:

  • 你将从这开始:

在此输入图像描述

  • 删除您ProductOrder实体之间的多对多关系
  • ProductOrder在设计器中创建新实体(通过使用工具箱或上下文菜单)
  • 在新实体中定义与联结表中定义的外键对应的两个属性 - ProductId,OrderId- 确保两者都标记为实体键(它们必须是数据库中的复合主键)并且具有与PK相同的类型
  • 打开映射详细信息并将新实体映射到联结表

在此输入图像描述

  • 创建两个新的一对多关联.该之间弗里斯特ProductProductOrder之间的第二OrderProductOrder.
  • 在每个添加的关系的属性窗口中设置参照约束(如此处所述).

在此输入图像描述

如果你需要这个,那你很有可能做错了.

  • 很好的答案.作为旁注:一个快速但更脏的解决方案是在连接表中添加一些"虚拟"列(例如,"Id"作为标识).在这种情况下,它会被EF作为一个实体暴露出来. (2认同)