¿Para qué son las propiedades de navegación en Entity Framework?

Veo en mi diagtwig EF muchas de estas propiedades de navegación pero no estoy seguro de para qué sirven realmente. Como veo en muchas de mis tablas, tengo propiedades aspnet_Users.

¿Para qué son estos? ¿Ayudan para las uniones? ¿o que?

Error 2 Error 3007: Problem in Mapping Fragments starting at lines 1201, 1423: Non-Primary-Key column(s) [Field2] are being mapped in both fragments to different conceptual side properties - data inconsistency is possible because the corresponding conceptual side properties can be independently modified. 

Una propiedad de navegación le permite navegar (¡duh!) De una entidad a una entidad “conectada”.

Por ejemplo, si su usuario está conectado a una función, puede utilizar la navegación “Función” para leer e inspeccionar la función asociada con el usuario.

EDITAR:

Si desea cargar al usuario con LINQ-to-Entities, y también mira su propiedad de navegación “Role”, debe incluir explícitamente la entidad “Role” en su consulta LINQ. EF NO carga esas propiedades de navegación automáticamente. .

  // 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; 

O:

  // 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; 

Básicamente es un equivalente programático a una relación de clave externa en una base de datos: una conexión entre dos objetos. Básicamente “oculta” o resuelve una unión entre dos tablas (o dos entidades, en EF speak).

Bagazo