2010-08-18 2 views
0

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

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

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

ответ

1

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

Теперь вы можете получить имя менеджера, как это:

user.Manager.Name; 

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

А что касается EntityReference: http://msdn.microsoft.com/en-us/library/bb297956.aspx

Представляет связанный конец целой ассоциации с множеством нуля или единицы.

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

+0

Благодарим за информацию. Я нашел ту же информацию, которая проверяет свойство ассоциации каждого свойства навигации и ищет какой внешний ключ базы данных, который он использовал. Я не видел никакой опции pluralize при создании объектов, может быть, потому, что я использую .net 3.5. Я все еще не понимаю, для чего используется EntityReference, но я нашел то, что искал, пока я счастлив :) – dstr

Смежные вопросы