我需要在单个表中存储多个多对多关系,以便与EntityFramework一起使用。
此要求中有许多m2m关系,但要举例说明,有:
实体 EntityGroup 地址
每个实体可以链接到多个地址记录,每个实体可以链接到多个EntityGroup记录。我想使用单个表来管理这些对象之间的关系 - 例如:
RelationshipType LeftID RightID
EntityGroupEntity 1 74
EntityGroupENtity 1 83
EntityAddress 74 17
在上面的示例中,EntityGroup" 1"包含ID为" 74"的两个实体。和" 83"和实体" 74"有地址" 17"与之相关联。
我注意到Fluent API中有Mapping选项,使用MapLeft和MapRight,但似乎没有办法告诉它在访问列表时要查找哪个关系。这可能吗?我没有幸运地在网上找到我的问题的答案 - 可能是因为我没有正确地问它!
任何帮助都将不胜感激。
感谢。
答案 0 :(得分:0)
您只能在包含多个m2m关系,枚举类型的表中再添加一列,指示它是EntityGroup还是您要引用的Address。
RelationshipType LeftID RightID Type
EntityGroupEntity 1 74 1
EntityGroupENtity 1 83 1
EntityAddress 74 17 2
其余的创意工作取决于您。无论如何,这是不好的做法(但据我所知,你无法控制要求)。