Как вставить сущность для отношений «многие ко многим»? (структура сущности) - PullRequest
5 голосов
/ 02 июня 2009

Если у меня есть отношение многие ко многим между пользователями и ролями, и у меня есть экземпляр сущности пользователя и несколько ролей идентификаторы , могу ли я вставить связь между двумя типами сущностей, не имея других Ролевые данные и без выбора в первую очередь Роли?

Обновление:

Возможно, я не был достаточно ясен. У меня нет экземпляра роли, только идентификатор роли. Можно ли создать отношения между пользователем и ролью без предварительного заполнения объекта роли из базы данных?

Ответы [ 2 ]

9 голосов
/ 02 июня 2009

Да, если у вас есть идентификаторы, и вам нужно их связать

Вы должны быть в состоянии сделать это (псевдокод)

// how you get this doesn't matter so long as it is in the Context
User user = ...; 
Role role = new Role {Id = 2}; 
// role 2 is in unchanged state
ctx.AttachTo("Roles", role); 
// role 2 is unchanged + added relationship between user and role 2
user.Roles.Add(role); 
ctx.SaveChanges(); 

Ключевым моментом здесь является то, что AttachTo переводит объект в менеджер ObjectState в неизменном состоянии. Пока вам не нужно изменять эту сущность и использовать ее только в том случае, если для построения отношений вам даже не нужно знать все значения свойств, PK достаточно.

Как только он будет прикреплен, вы сможете построить отношения.

Надеюсь, это поможет

Приветствие Alex

2 голосов
/ 02 июня 2009

Если вы не используете привязку данных, конечно. Многие ко многим отображаются в виде списка ссылок друг на друга. User.Roles.Add (Role ...) должно быть в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...