映射字典

时间:2012-01-24 08:15:44

标签: nhibernate orm mapping

我有3个表用户,访问级别,角色。我的用户班有public virtual Dictionary<Role,AccessLevel> Roles {get; set;},和 角色类有public virtual Dictionary<User,AccessLevel> Users {get;set;}?如何在映射中表示这样的词典?

1 个答案:

答案 0 :(得分:0)

如果您提供表的结构,尤其是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>