Entity Framework v1 моделирует взаимосвязь таблицы поиска «многие ко многим» - PullRequest
0 голосов
/ 11 сентября 2009

У меня есть следующие таблицы базы данных:

Таблица1: Пользователь
Идентификатор пользователя
Имя пользователя

Таблица2: Role
RoleId
Rolename

Table3: UserRole
UserId
RoleId

Пользователь может иметь много ролей, а роль может иметь много пользователей. Когда я моделирую это с EF, я получаю сущность User со списком сущностей UserRole. То, что я хочу, - это пользователь со списком ролей.

Есть ли способ смоделировать это или запрос через LINQ, чтобы вернуть сущность пользователя и сущности роли, к которым они принадлежат?

Спасибо
Dirk

1 Ответ

0 голосов
/ 14 сентября 2009

Если вы моделируете отношение «многие ко многим», таблица в середине не появится в вашей концептуальной модели. (т.е. у вас не будет класса «UserRole», производного от «EntityObject»)

Если вы используете мастер EF, убедитесь, что в таблице «UserRole» есть только эти два поля, но нет других. Также убедитесь, что вы создали ограничения внешнего ключа для обоих полей. если да, то мастер создаст правильное отношение «многие ко многим».

Тогда запрос, вероятно, выглядит примерно так:

using(MyObjectContext context = new MyObjectContext(someParameters)){
    var theUser = (from user in context.UserSet
                  where user.UserId = XY
                  select user).First();
    theUser.Roles.Load();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...