NHibernate Mapping + Iset

时间:2010-04-13 19:29:27

标签: nhibernate nhibernate-mapping

我有一个映射文件

<set name="Friends" table="Friends">
  <key column="UserId"/>
  <many-to-many class="User" column="FriendId"/>
</set>

我想为这个创建的好友表指定额外的列。

例如批准(用户必须批准朋友请求)

有简单的方法吗?

并更新

    <?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping namespace="MyVerse.Domain" assembly="MyVerse.Domain" xmlns="urn:nhibernate-mapping-2.2">
  <class name="User" table="[User]" lazy="true">
    <id name="Id" type="Guid">
      <generator class="guid" />
    </id>
    <property name="DateCreated" type="DateTime" not-null="true" />
    <property name="Deleted" type="Boolean" not-null="true" />
    <property name="Firstname" type="String" length="100" not-null="true" />
    <property name="Lastname" type="String" length="100" not-null="true" />
    <bag name="Friends" table="[Friend]">
      <key column="UserId"/>
      <many-to-many class="Friend" column="FriendId"/>

    </bag>

  </class>
  <class name="Friend" table="[Friend]" lazy="true">
    <id name="Id" type="Guid">
      <generator class="guid" />
    </id>
    <property name="DateCreated" type="DateTime" not-null="true" />
    <property name="Approved" type="Boolean" not-null="true" />
  </class>
</hibernate-mapping>

将从朋友表

导致到朋友表的链接

1 个答案:

答案 0 :(得分:1)

如果集合具有“额外属性”,则必须将其转换为适当的实体。

因此,User没有ISet<User>;它有一个ISet<Friend>