【问题标题】:Fluent Nhibernate many to many relationship using a surrogate primary keyFluent Nhibernate 使用代理主键的多对多关系
【发布时间】:2011-01-18 03:12:46
【问题描述】:

我的应用程序中存在多对多关系,并且我正在使用流利的 nhibernate。

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

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

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

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

我希望 Login_Role 使用代理主键。

干杯, 安德鲁

【问题讨论】:

  • 你可能应该提到为什么你想要这个而不是使用自然键?这是一个“多对多有效负载”的场景吗?公司政策?

标签: nhibernate


【解决方案1】:

您可以使用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 还没有公开它。

【讨论】:

    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多