Свойство навигации позволяет вам переходить от одного объекта к «связанному» объекту.
например. если ваш пользователь подключен к роли, вы можете использовать навигацию «Роль», чтобы прочитать и проверить роль, связанную с пользователем.
EDIT:
Если вы хотите загрузить пользователя с LINQ-to-Entities, а также посмотреть его свойство навигации «Role», вам необходимо явно включить сущность «Role» в ваш запрос LINQ - EF делает NOT автоматически загружать эти свойства навигации.
// 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;
OR
// 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, двух сущностей).
Марк