c# – 如何使用Roles或Composition在NHibernate中映射类
我相信这是一个常见的问题/问题,但未能找到一个干净简洁的答案.
问题 如何映射看似具有继承关系的实体: Company Supplier Manufacturer Customer 但是,供应商可以是制造商. 要么 Person Doctor Patient Employee 患者可以是医生,也可以是员工. 建议:使用角色 在NHibernate论坛的讨论中,响应通常是多重继承. http://forum.hibernate.org/viewtopic.php?t=959076 他们建议的解决方案是使用组合或使用“角色”.但是,我找不到任何关于如何做到这一点的例子或解释.
解决方法
您可能想要考虑使用角色.因此角色将拥有一组人员.或者一个人将拥有一组角色或两者兼而有之.这可能意味着有一个将人员映射到角色的关联类.
使用人们共有的所有属性定义Person类.然后定义一个Role超类和DoctorRole,PatientRole和EmployeeRole子类(假设每个角色都有不同的属性). Person类可以定义一组角色,Role类可以定义一组人员.或者创建一个Association类可能更容易,我们称之为PeopleRole. This页面解释了如何进行映射,以便PeopleRole是一个复合元素.查看Order / Product / LineItem示例.你的人就像Order,PeopleRole就像LineItem,Role就像Product. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |