ASP.NET MVC 3 с EF не распознает таблицу соединений «многие ко многим» - PullRequest
0 голосов
/ 04 февраля 2011

В моей базе данных есть таблица User, а затем другая таблица с чем-то вроде ролей. Между ними есть таблица соединения многих ко многим. Когда кто-то создает нового пользователя, он должен иметь возможность выбрать роль, которую он хочет для пользователя. Однако EF не позволяет мне ассоциировать моего пользователя с этой другой таблицей. У меня был выпадающий список, но когда роль была выбрана, возникла недействительная ошибка ввода, говорящая, что PKID не был правильным вводом. Я должен что-то упустить из-за того, как работает EF, или, по крайней мере, как он связан с MVC 3

1 Ответ

1 голос
/ 04 февраля 2011

Вообще говоря, когда у вас есть отношения многие ко многим, вам нужна отдельная таблица для хранения двух внешних ключей.

Так что вы можете иметь:

User
------
ID
Name


Role
------
ID
Name


UserRoles
------
ID
UserID
RoleID

Зачем вам здесь много-много отношений? На твоем месте я бы создал что-то вроде

User
------
ID
Name
IDRoleType


Role
------
ID
RoleType

Таким образом, пользователь может иметь роль, и в вашем коде вы можете сделать что-то вроде:

public IQueryable FindUsers()
{
    MyEntities db = new MyEntities();
    return db.Users.Where(u => u.IDRoleType == 0);
}

Или

public IQueryable FindUsers()
{
    MyEntities db = new MyEntities();
    return db.Users.Where(u => u.Role.RoleType == "Admin");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...