Hace el virtual
palabra clave tiene un efecto cuando se usa en las propiedades de EF Code First ?. ¿Alguien puede describir todas sus ramificaciones en diferentes situaciones?
Por ejemplo, sé que puede controlar la carga diferida : si usa la palabra clave virtual en una propiedad de relación ICollection / uno a muchos, se cargará de forma diferida de forma predeterminada, mientras que si deja la palabra clave virtual fuera, estar ansioso de cargar.
¿Qué otros efectos puede virtual
tener la palabra clave en EF con entidades POCO? ¿Debo usarlo de manera predeterminada virtual
en todas mis propiedades o no usarlo de manera predeterminada?
fuente
public virtual byte[] bigData { get; set; }
carga " " es lenta?.Select(a=>new { fields you want })
.Esta palabra clave virtual está relacionada con el tema de cargar datos desde el marco de la entidad (carga diferida, carga ansiosa y carga explícita).
Debe usar una palabra clave virtual cuando desee cargar datos con carga diferida.
la carga diferida es el proceso mediante el cual una entidad o colección de entidades se carga automáticamente desde la base de datos la primera vez que se accede a ella.
Por ejemplo, cuando se usa la clase de entidad Blog definida a continuación, las Publicaciones relacionadas se cargarán la primera vez que se acceda a la propiedad de navegación Publicaciones:
La carga diferida de la colección Posts se puede desactivar haciendo que la propiedad Posts no sea virtual.
si la carga diferida está desactivada, la carga de la colección de publicaciones aún se puede lograr usando carga ansiosa (usando el método Incluir) o cargando explícitamente entidades relacionadas (usando el método Load).
Cargando ansiosamente:
Cargando explícitamente:
fuente
Include()
.