我正在负责处理用户和项目一个项目:NHibernate - 多表映射?
- 可以将用户分配到零个或X项目。
- 用户已经读取或写入项目的权限。
在我的数据库,我写了一个名为Users_Projects_Rights表,这是用来给用户,以一定数量的项目进行关联,以及对他们指定其访问权限(它只是一个布尔值,真权限,读取权利为false)。
的Users_Projects_Rights表列是:
- id_User
- id_Project
- CanWrite(布尔)
我的User类目前拥有该类别:
/// <summary>
/// Gets or sets a user's accessible projects, with the value being
/// the name of the project.
/// </summary>
public virtual IDictionary<int, string> AssignedProjects { get; set; }
考虑考虑,我有一个项目表,其中有一个名称的列:
- 我该如何映射我AssignedProjects dictionnary,在我的User类,才能有项目ID作为密钥(使用三元映射与Users_Projects_Rights表)和项目名称(取自Projects表)作为值?
这里是我想出了,但我不知道如何映射字典的值:
<map name="AssignedProjects" table="Users_Projects_Rights">
<key column="id_User"/>
<map-key column="id_Project" type="Int32"/>
(How do I map the value... ?)
</map>
为什么它会抛出该异常..?你的意思是,如果一个用户被分配两次到同一个项目..? – 2011-12-20 07:29:19
否..当前用户可以分配到多个项目。当前用户标识是我们映射中的一个键 – Anand 2011-12-20 07:37:34
不,关键是项目标识,值是项目名称。 – 2011-12-20 07:40:49