好的,是nhibernate的新手,我正在开发一个已经完全实现它的项目。
Scenerio:一个类(Person)有两个连接的子类(RoleA和RoleB)。
我需要的是一个给定的人实际上可以同时在RoleA和RoleB中。如果给定一个已经创建过的人并且在RoleA中,我是否可以在RoleB中同时创建它们,同时保持与RoleA的关系?
答案 0 :(得分:0)
所以,你有类似以下内容(学生和教师取代RoleA和RoleB):
<class name="Person" table="Persons" >
<id name="Id" column="PersonID">
<generator class="native" />
</id>
<property name="Name" column="Name" not-null="true" />
<joined-subclass name="Student" table="Students">
<key column="PersonID" />
<property name="Grade" column="Grade" not-null="true" />
</joined-subclass>
<joined-subclass name="Teacher" table="Teachers">
<key column="PersonID" />
<property name="ClassName" column="ClassName" not-null="true" />
</joined-subclass>
</class>
如果是这种情况,最好的办法是使用一对一的映射来完成同样的事情。这是一个很好的参考:http://nhibernate.info/doc/nh/en/index.html#mapping-declaration-onetoone
这个人和你有类似的问题,最后选择了一对一的映射选项: http://groups.google.com/group/nhusers/browse_thread/thread/1d83e0cd3c2bf58f