Я работаю над проектом, который обрабатывает пользователей и проекты:NHibernate - Множественное отображение таблицы?
- Пользователь может быть назначен на ноль или X проектов.
- Пользователь имеет права на чтение или запись на проект.
В моей базе данных, у меня есть таблица с именем Users_Projects_Rights, который используется, чтобы связать пользователя к определенному числу проектов, а также определить их права доступа на них (это просто логическое значение, верно для записи права, false для прав на чтение).
Столбцы Users_Projects_Rights таблицы являются:
- id_User
- id_Project
- CanWrite (булево)
Мой класс Пользователь в настоящее время эти коллекции:
/// <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, чтобы иметь идентификатор проекта в качестве ключа (с использованием троичной отображения с таблицей 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>
Почему бы это выбросить это исключение? .. Вы имеете в виду, если пользователь дважды назначается на тот же проект ..? –
no..current пользователь может назначаться нескольким project.Bcoz текущий идентификатор пользователя является ключом в нашем сопоставлении – Anand
Нет, ключ - это идентификатор проекта, а значение - имя проекта. –