同一实体中的2个外键映射到相同的主键问题

时间:2010-08-06 22:38:07

标签: nhibernate nhibernate-mapping

您好希望有人可以帮助我。

我有一种情况: 用户实体存储我的所有用户,包括管理员。 存储针对用户的所有评论的评论实体。

我的问题是我还在评论实体中存储了发表评论的管理员的用户ID。所以我现在让Comment实体有2个userId字段,当检索User实体时,它不会获取任何关联注释。

我的映射代码如下:

在用户实体中..

<set name="MemberComments" cascade="all-delete-orphan" inverse="true">
  <key column="UserCommentId"/>
  <one-to-many class="IlluminatiCoreUserComment"/>
</set>

在UserComment实体

<id name="UserCommentId">
  <generator class="identity"/>
</id>
<many-to-one name="User" class="IlluminatiCoreMember" column="UserId" not-null="true"/>
<property name="Comment" not-null="true"/>
<property name="CreatedTimeStamp" not-null="true"/>
<property name="ModifiedTimeStamp" not-null="true"/>
<many-to-one name="CommentedByUser" class="IlluminatiCoreMember" column="CommentedByUserId" not-null="true"  inverse="false"/>

如何让User实体中的MemberComments只指向User多对一字段?

感谢您的提前帮助

1 个答案:

答案 0 :(得分:0)

用户中的<key>元素应具有用户的FK,而不是 UserComment 的ID。

换句话说,与多对一UserId相同的列。