2011-05-18 27 views
12

Estoy utilizando el primer enfoque del Entity Framework 4.1 code.Entity Framework 4.1 impaciente por defecto loading

Quiero hacer que la carga de archivos sea mi configuración predeterminada, y con eso evitar usar el método de extensión Incluir en cada consulta de búsqueda.

Hice lo recomendado en MSDN, el cambio de la propiedad perezoso simple al constructor DbContext:

public class EMarketContext : DbContext 
{ 
    public EMarketContext() 
    { 
     // Change the default lazy loading to eager loading 
     this.Configuration.LazyLoadingEnabled = false; 
    } 
} 

por desgracia, este enfoque no funciona. Tengo que usar el método Incluir para realizar una carga ansiosa en cada consulta. ¿Alguna idea de por qué? Gracias de antemano.

Respuesta

25

No hay configuración predeterminada para la carga ansiosa. Siempre debe definir Include o crear algún método reutilizable que envuelva agregar incluir. Por ejemplo, puede colocar un método similar a su contexto:

public IQueryable<MyEntity> GetMyEntities() 
{ 
    return this.MyEntities.Include(e => e.SomeOtherEntities); 
} 
+0

De acuerdo con los desarrolladores de ADO.Net, está equivocado. mira esto: http://blogs.msdn.com/b/adonet/archive/2011/01/31/using-dbcontext-in-ef-feature-ctp5-part-6-loading-related-entities.aspx? CommentPosted = true # commentmessage – Sean

+0

No, no estoy equivocado. Sé que este artículo y no hay ninguna parte que describa "Permanent' Include' " –

+0

por favor mira (en el medio):" Desactiva la carga diferida para todas las entidades ". – Sean

Cuestiones relacionadas