【发布时间】:2016-02-15 05:10:58
【问题描述】:
我需要将多个多对多关系存储在单个表中以用于 EntityFramework。
在这个需求中有很多m2m关系,但是举个例子,有:
实体 实体组 地址
每个 Entity 可以链接到多个 Address 记录,每个 Entity 可以链接到多个 EntityGroup 记录。我想使用一个表来管理这些对象之间的关系——比如:
RelationshipType LeftID RightID
EntityGroupEntity 1 74
EntityGroupENtity 1 83
EntityAddress 74 17
在上面的例子中,EntityGroup“1”包含两个实体,ID分别为“74”和“83”,而Entity“74”的地址为“17”。
我注意到 Fluent API 中有映射选项,使用 MapLeft 和 MapRight,但似乎没有办法告诉它在访问列表时要查找哪种关系。这可能吗?我没有任何运气在网上找到我的问题的答案 - 可能是因为我没有正确提问!
任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
通过表中的列查找关系在使用 RDBMS 时是一个非常糟糕的选择。使用 RDBMS,您基本上抛弃了它真正擅长的 切割器 方法来创建表之间的关系。
-
坏主意 - 您将破坏参照完整性、优化技术等以避免拥有多个表。
-
虽然我意识到这不是“最佳实践”,但恕我直言,我正在寻找一个潜在的解决方案。如果对象之间的链接正确存储在表中,则不会破坏参照完整性。
-
@TwistedMellow 这个结构对你有什么作用?能否就此给出结论?
标签: c# sql .net entity-framework