如何从实体框架中的元模型获取多对多关系的实体到表映射

发布于 2024-11-05 14:40:44 字数 141 浏览 0 评论 0原文

有什么方法可以让底层的“多对多表”连接实体框架中的两个实体。

例如,如果我们有 Product 和 Order 实体,我们如何获得连接 Product 和 Order 表的基础连接表 Product_Order 。

任何帮助将不胜感激。

Is there any way we can get the underlying "many to many table" joining the two entities in entity framework.

For example if we have Product and Order entities, how can we get the underlying conjunction table Product_Order that joins the Product and Order table.

Any help would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦忆晨望 2024-11-12 14:40:44

可以将联结表公开为实体,但这并不常见/不需要:

  • 您将从以下开始:

在此处输入图像描述

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

在此处输入图像描述

  • 创建两个新的一对多关联。第一个位于 ProductProductOrder 之间,第二个位于 OrderProductOrder 之间。
  • 在每个添加的关系的“属性”窗口中设置引用约束(如此处所述)

在此处输入图像描述

如果您需要这个,您很有可能做错了什么。

It is possible to expose junction table as an entity but it is not common / needed:

  • You will start with this:

enter image description here

  • Delete many-to-many relation between your Product and Order entities
  • Create new ProductOrder entity in designer (either by using toolbox or context menu)
  • Define two properties in your new entity corresponding to Foreign keys defined in your junction table - ProductId, OrderId - make sure that both are marked as entity key (they must be composite primary key in the database) and have the same type as PKs
  • Open Mapping details and map your new entity to junction table

enter image description here

  • Create two new one-to-many associations. The frist between Product and ProductOrder and the second between Order and ProductOrder.
  • In Property window of each added relation set up referential constraints (as described also here).

enter image description here

There is very big chance that if you need this you are doing something wrong.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文