我正在負責處理用戶和項目一個項目: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