Запутался в навигационных свойствах / ссылках в Entity Framework - PullRequest
0 голосов
/ 18 августа 2010

Я пытаюсь изучить Entity Framework, и я запутался в навигационных свойствах. У меня есть таблица с именем tblUser. У него есть столбец с именем ManagerId, который имеет собственный внешний ключ, ссылающийся на столбец UserId. Я добавил эту таблицу в свою модель EF, и теперь у меня есть три «ссылки» в свойствах сущности моей таблицы:

tblUser1 (тип: EntityCollection )
tblUser2 (тип: tblUser)
tblUser2Reference (тип: EntityReference )

Я не понимаю, для чего они используются. Я хочу получить имя менеджера для пользователя, какой из них мне следует использовать и как?

1 Ответ

1 голос
/ 18 августа 2010

EF нумерует ваши свойства навигации по умолчанию, поэтому это может сбить с толку.Вы можете переименовать свойства в конструкторе:
tblUser1 до Users;
tblUser2 до Manager;
tblUser2Reference до ManagerReference.

сейчасвы можете получить имя менеджера следующим образом:

user.Manager.Name;

Что касается других свойств - tblUser1 (который мы переименовали в Users) - это другая сторона вашего Manager свойства навигации.Он будет содержать коллекцию users, которые имеют текущий manager.Это не было множественным числом по умолчанию, что делает его еще более запутанным.Если вы выберете « Pluralize или Singularize сгенерированных имен объектов » при генерации БД, он скорее сгенерирует что-то вроде Users1, User1 и User1Reference.

И относительно EntityReference: http://msdn.microsoft.com/en-us/library/bb297956.aspx

Представляет связанный конец ассоциации с кратностью ноль или единица.

Возвращается объект EntityReferenceпо свойству навигации, когда связанный конец имеет кратность ноль или единицу.

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