我相信这是一个常见的问题/问题,但无法找到一个简洁明了的好答案。
问题
如何映射看似具有继承关系的实体:
Company
Supplier
Manufacturer
Customer
但是,供应商可以是制造商。
或者
Person
Doctor
Patient
Employee
患者可以是医生也可以是员工。
建议:使用角色
在 NHibernate 论坛上的讨论中,反应通常是这是多重继承。
http://forum.hibernate.org/viewtopic.php?t=959076
他们建议的解决方案是使用组合或使用“角色”。但是,我找不到任何关于如何做到这一点的示例或解释。
“有利于组合而不是继承。” 还记得课堂上的那个小礼物吗?在这种情况下,我必须同意您正在尝试多重继承——在 C# 或 Java 中(还)不可能。我个人会鼓励您考虑重新建模,以便您拥有一个 Person 对象,并且一个人拥有一对多的角色集合。