Identidad EF7 que no carga las propiedades extendidas del usuario

asp.net-core asp.net-identity entity-framework-core

Pregunta

Tengo una clase extendida de IdentityUser que contiene una referencia a otra entidad en mi base de datos, pero siempre que trato de obtener el Usuario con el UserManager, la entidad a la que se hace referencia siempre está vacía:

Mi implementación de la clase User.

public class Usuario : IdentityUser
{
    public int ClienteID { get; set; }
    public virtual Cliente Cliente { get; set; }
}

Un controlador que utiliza la propiedad referenciada en el usuario.

public class Usuario : IdentityUser
{
    public int ClienteID { get; set; }
    public virtual Cliente Cliente { get; set; }
}

También intenté eliminar la palabra clave virtual de la referencia, para que se cargue de forma perezosa, pero no estoy seguro de que ya esté implementado en EF7.

¿Alguna idea sobre cómo lograr esto?

Respuesta popular

También tuve este problema y lo resolví con la ayuda de la Documentación básica de EF . Debe utilizar el método Include para obtener los datos relacionados para completar. En mi caso:

Clase de entidad:

public class ServiceEntity
{
    public int ServiceId { get; set; }
    public int ServiceTypeId { get; set; }

    public virtual ServiceTypeEntity ServiceType { get; set; } 

}

Accediendo a mi objeto DbContext:

public class ServiceEntity
{
    public int ServiceId { get; set; }
    public int ServiceTypeId { get; set; }

    public virtual ServiceTypeEntity ServiceType { get; set; } 

}

También tuve que hacer la propiedad "virtual". Según tengo entendido, EF Core debe ser capaz de anular las propiedades del objeto relacionado para completar los valores.

Además, a partir de esta fecha posterior, EF Core aún no admite la carga diferida, solo la carga impaciente y la carga explícita.

¡Espero que esto ayude!




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué