Fluent使用代理主键来禁止多对多的关系

时间:2011-01-18 03:12:47

标签: nhibernate

我的应用程序中有很多关系,我使用流利的nhibernate。

登录可以有很多角色。 (一个角色也可以有很多登录)。

我见过很多使用复合主键的例子。

        HasManyToMany<Role>(x => x.Roles).Table("Role")
            .ParentKeyColumn("RoleId")
            .ChildKeyColumn("LoginId");

你知道Fluent / NHibernate是否支持多对多关系,而不需要数据库关联实体(Login_Role)需要复合主键。

我更希望Login_Role使用代理主键。

干杯, 安德鲁

alt text

1 个答案:

答案 0 :(得分:3)

您可以使用idbag

<idbag name="Roles" table="Login_Role">
  <collection-id type="int" column="id">
    <generator class="hilo"/>
  </collection-id>
  <key column="LoginId"/>
  <many-to-many class="Role" column="RoleId"/>
</idbag>

我认为Fluent还没有公开它。