密钥表的nHibernate HMB映射

密钥表的nHibernate HMB映射,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,我正在努力寻找将nHibernate映射到现有数据库的最佳方法。以下是基本表格: 用户表: 用户ID 字段1 字段2 权限表: 许可证 字段1 字段2 用户权限: 用户ID 许可证 我已经映射了类(使用XML)并为用户表和权限表运行,但现在希望使用两列映射表在这两个类中创建集合 也就是说,权限类将有一个ICollection,用户类将有一个ICollection成员 我认为不应该将UserPermission表映射到实体,因为它不是真正的实体。它只是一个映射表 不幸的是,查看所有的nHibe

我正在努力寻找将nHibernate映射到现有数据库的最佳方法。以下是基本表格:

用户表: 用户ID 字段1 字段2

权限表: 许可证 字段1 字段2

用户权限: 用户ID 许可证

我已经映射了类(使用XML)并为用户表和权限表运行,但现在希望使用两列映射表在这两个类中创建集合

也就是说,权限类将有一个
ICollection
,用户类将有一个
ICollection
成员

我认为不应该将UserPermission表映射到实体,因为它不是真正的实体。它只是一个映射表


不幸的是,查看所有的nHibernate文档并进行搜索并没有让我找到一个明确的方法。任何帮助都将不胜感激。

NHibernate支持这种数据库设计。本例中的映射将使用
many-to-many
元素,而不使用配对实体/表的任何显式映射

以下是文档中经过调整的代码段:


...
...

感谢您的快速响应。我错误地认为bag指令需要一个类。再次感谢,这非常有效。很高兴看到这一点,享受NHibernate。。。神奇的工具;)
<class name="User">
    <id name="Id" column="UserID"/>
    ...
    <bag name="Permissions" table="UserPermissions" lazy="true">
        <key column="UserID"/>
        <many-to-many class="Permission" column="PermissionID"/>
    </bag>
</class>

<class name="Permission">
    <id name="Id" column="PermissionID"/>
    ...

    <!-- inverse end -->
    <bag name="Users" table="UserPermissions" inverse="true" lazy="true">
        <key column="PermissionID"/>
        <many-to-many class="User" column="UserID"/>
    </bag>
</class>