Отношения сущностей не читаются правильно из базы данных - PullRequest
0 голосов
/ 21 октября 2010

В моем приложении mvc2 есть настройка отношения сущностей, так что у каждого пользователя есть одна роль, и у каждой роли может быть много пользователей. Вот так:

 Roles         Users
--------     ---------
 RoleID--      UserID
         \
 Name     -->  RoleID

Итак, довольно базовые отношения «многие к одному» применяются в базе данных и отражаются в моей диаграмме отношений сущностей. Однако, когда я пытаюсь получить роль пользователя (user.Role.Name), она всегда равна нулю, и я вижу в базе данных, что для роли пользователя задан действительный идентификатор. Это моя первая попытка использования сущностей, так как я всегда использовал LINQ2SQL раньше, и это просто сбивает меня с толку.

Что делать?

Вот снимок экрана моего файла edmx

http://cl.ly/a9c088698369a54fc770

В базе данных пользовательская таблица имеет свойство RoleID (не знаю, почему она не отображается на диаграмме), и я свободно могу переходить от пользователя к роли, и известно, что это отношение один ко многим компилятор, но он просто возвращается как ноль при попытке просмотреть объект пользователя.

РЕДАКТИРОВАТЬ:

Вот запрос, который я использую

User user = db.Users.SingleOrDefault(u => u.Username == username);
user.Role.Name

Мой пользовательский объект не является нулевым, и любые другие его свойства видимы, просто не могут видеть роль, и у каждого пользователя есть одна роль.

Ответы [ 2 ]

1 голос
/ 21 октября 2010

Вам необходимо загрузить любые ссылки вручную, например:

Users.Roles.Load()

Дополнительный бонус:

Получить универсальный репозиторий ...удивительный.

0 голосов
/ 21 октября 2010

Найдите связь между пользователем и ролью в браузере моделей, затем убедитесь, что свойство Role определено как свойство навигации .

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