Для чего Свойства Навигации в Платформе Объекта?

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

27
задан abatishchev 20 April 2011 в 16:54
поделиться

1 ответ

Свойство навигации позволяет вам переходить от одной сущности к «подключенной» сущности.

Например, если ваш пользователь подключен к роли, вы можете использовать навигацию «Роль» для чтения и проверьте роль, связанную с пользователем.

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

Если вы хотите загрузить пользователя с помощью LINQ-to-Entities, а также посмотреть на его свойство навигации «Роль», вы должны явно включить «Роль» "в вашем запросе LINQ - EF НЕ автоматически загружает эти свойства навигации для вас.

  // load user no. 4 from database
   User myUser = from u in Users.Include("Role")
                 where u.ID = 4
                 select u;

   // look at the role the user has
   string roleName = myUser.Role.Name;

ИЛИ:

   // load user no. 4 from database
   User myUser = from u in Users
                 where u.ID = 4
                 select u;

   // check to see if RoleReference is loaded, and if not, load it
   if(!myUser.RoleReference.IsLoaded)
   {
      myUser.RoleReference.Load();
      // now, the myUser.Role navigation property should be loaded and available
   }

   // look at the role the user has
   string roleName = myUser.Role.Name;

Это в основном программный эквивалент отношения внешнего ключа в базе данных - соединение между двумя объекты. По сути, он «скрывает» или разрешает соединение между двумя таблицами (или двумя объектами, говоря языком EF).

Marc

45
ответ дан 28 November 2019 в 05:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: