实体框架4.1默认急切加载

时间:2011-05-18 08:43:31

标签: entity-framework entity-framework-4.1 eager-loading

我正在使用Entity Framework 4.1代码第一种方法。

我希望将急切加载作为我的dafault配置,并避免在每个提取查询中使用Include扩展方法。

我在MSDN中推荐,在DbContext构造函数中更改了简单的lazy属性:

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

不幸的是,这种方法不起作用。我必须使用Include方法在每个查询中执行预先加载。有什么想法吗? 提前谢谢。

1 个答案:

答案 0 :(得分:26)

预先加载没有默认配置。您必须始终定义Include或创建一些可重用的方法,它将包装添加包含。例如,您可以将类似的方法放在您的上下文中:

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