Una propiedad de navegación le permite navegar (duh!) De una entidad a una entidad "conectada".
E.g. 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.
EDIT:
Si desea cargar al usuario con LINQ a Entidades, y también buscar en su propiedad de navegación "papel", que ha de incluir explícitamente la entidad "papel" en su consulta LINQ - EF hace NOT carga esas propiedades de navegación automáticamente para usted.
// 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;
Es básicamente un programática equivalente 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).
Marc
Ah Tengo problemas con la adición de algunos campos. Como tengo una tabla (le llaman tablaA) tabla A tiene 2 campos (campo 1 y campo 2). Mi aspnet_userTable tiene todos los campos de membresía asp.net más el Campo 1 y el Campo 2. cuando voy y trato de agregar un nuevo usuario a aspnet_userTable No veo Field1 o Field2. Así que traté de hacerlo en 2 pasos primero haga aspnet_Users.Createaspnet_Users() y luego almacénelo en una tabla aspnet_Users (vamos a llamarlo usuario). Luego probé user.Field1 = "something" esto funciona. luego probé user.Field2 (no se encuentra ninguna propiedad). Veo que tiene este –
chobo2
user.TableA.Field1 y user.TableA.Field2, pero cuando trato de configurarlo obtengo un error de referencia nulo. ¿Qué estoy haciendo mal? – chobo2
Bueno, tiene sus asociaciones incorrectas: si agrega una nueva tabla "TableA" a su sistema y crea una relación de clave externa con "aspnet_user", su objeto "TableA" tendrá una relación (propiedad de navegación) con "aspnet_User" " - no de la otra manera. Entonces, en su entidad "TableA", debe haber una propiedad de navegación "aspnet_User". –