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