Nhibernate 映射字典

Nhibernate 映射字典,nhibernate,orm,mapping,Nhibernate,Orm,Mapping,我有3个表:用户、访问级别、角色。我的用户类具有公共虚拟字典角色{get;set;},以及 角色类是否有公共虚拟字典用户{get;set;}?这些字典应该如何在映射中表示?在FluentNhibernate中,它看起来像 HasManyToMany(user => user.Roles) .Table("UserRoleAccessLevel") .AsEntityMap("role_id") .KeyColumn("user_id"); HasManyToMan

我有3个表:用户、访问级别、角色。我的用户类具有
公共虚拟字典角色{get;set;}
,以及
角色类是否有
公共虚拟字典用户{get;set;}
?这些字典应该如何在映射中表示?

在FluentNhibernate中,它看起来像

HasManyToMany(user => user.Roles)
    .Table("UserRoleAccessLevel")
    .AsEntityMap("role_id")
    .KeyColumn("user_id");

HasManyToMany(role => role.Users)
    .Table("UserRoleAccessLevel")
    .AsEntityMap("user_id")
    .KeyColumn("role_id");
但是现在不能测试它

更新:在hbm.xml中

<map name="Roles" table="UserRoleAccessLevel">
  <key column="user_id" />
  <index-many-to-many class="Role" column="role_id" />
  <many-to-many class="AccessLevel" column="accesslevel_id" />
</map>

<map name="Users" table="UserRoleAccessLevel">
  <key column="role_id" />
  <index-many-to-many class="User" column="user_id" />
  <many-to-many class="AccessLevel" column="accesslevel_id" />
</map>

如果您提供了表的结构,尤其是AccessLevels表,那就太好了。就我所能猜到的表的结构而言,我可以向您推荐这种映射

<class name="User" table="Users">
    <id name="Id" column="user_id">
        <generator class="native" />
    </id>

    <property name="Name" column="user_name" not-null="true" />

    <map name="Roles" table="AccessLevels" cascade="save-update">
        <key column="user_id" />
        <map-key-many-to-many column="role_id" class="Role" />
        <one-to-many class="AccessLevel"/>
    </map>
</class>

<class name="Role" table="Roles">
    <id name="Id" column="role_id">
        <generator class="native" />
    </id>

    <property name="Name" column="user_name" not-null="true" />
</class>

<class name="AccessLevel" table="AccessLevels">
    <id name="Id" column="Id">
        <generator class="native" />
    </id>

    <property name="Level" column="level" not-null="true" />
    <many-to-one name="User" column="user_id" not-null="true" cascade="save-update" />
    <many-to-one name="Role" column="role_id"  not-null="true" cascade="save-update" />
</class>

谢谢。但我不熟悉FluentNHibernate。您能告诉我如何在映射文件中执行此操作吗?