问题在标题中:
如何将多对多关系表作为实体?
我会说,你的问题很合理。看看这个文档部分:第24章最佳实践。摘录:
不要使用外来关联映射: 真正的多对多关联的实际测试案例很少见。大多数时候,您需要存储在“链接表”中的其他信息。在这种情况下,最好将两个一对多关联用于中间链接类。实际上,大多数关联是一对多和多对一的。因此,在使用任何其他关联样式时,您应谨慎进行。
不要使用外来关联映射:
真正的多对多关联的实际测试案例很少见。大多数时候,您需要存储在“链接表”中的其他信息。在这种情况下,最好将两个一对多关联用于中间链接类。实际上,大多数关联是一对多和多对一的。因此,在使用任何其他关联样式时,您应谨慎进行。
我们正在处理的方法是引入配对对象。因此,如果有Employee很多Contacts,我们就可以拥有EmployeeContact。这样,我们可以收获很多,因为我们可以使用更多/新的属性(IsMain,IsActive等)来丰富EmployeeContact。
Employee
Contacts
EmployeeContact
在这种情况下,双方的映射是
one-to-many
many-to-one
因此,最后,映射是正常的,但是我们可以使用子查询等搜索Employee或Contact。
注意:在这种情况下,如果配对表具有自己的替代密钥,例如EmployeeContactId,则是合适的。 它可以随时添加..例如,带有身份…