сохранить отношения многие ко многим - EF - PullRequest
0 голосов
/ 13 января 2011

У меня есть 3 таблицы: Пользователь, Курс, UserCourse

Как мне сохранить различные курсы для пользователя в таблице UserCourse с использованием Entity Framework?

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 января 2011

Таблица UserCourse должна быть соединительной таблицей для EF, чтобы понять отношение «многие ко многим».Например: UserId (PK), CourseId (PK)

После этого вы можете просто добавить сущности в коллекции сущностей.

var context = new MyModel();
var user1 = new User { Name = "u1" };
var user2 = new User { Name = "u1" };
context.Users.Add(user1);
context.Users.Add(user2);
var math = new Course { Name = "Math" };
context.Courses.Add(math);
math.Users.Add(user1);
math.Users.Add(user2);
context.SaveChanges();

Та же логика для добавления курса к пользователю: user1.Courses.Add(math);

0 голосов
/ 13 января 2011

Обычно структура сущностей преобразует вашу таблицу ссылок в прямые отношения. То есть вы сможете сделать это:

someUser.Courses.Add(someCourse);
someUser.Courses.Remove(someOtherCourse);

someCourse.Users.Add(someOtherUser);

По крайней мере, если ваша таблица UserCourse настроена таким образом, чтобы EF мог это сделать. (т.е. только два столбца с двумя ключами User и Course, установленными как PK)

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