如何使用EF 5打开和关闭延迟加载?

时间:2013-03-06 04:16:28

标签: linq entity-framework entity-framework-4.1

如果我有以下物品:

public class Application 
{
    public int ApplicationId { get; set; }
    public string Name { get; set; }
    public virtual ICollection<TestAccount> TestAccounts { get; set; }
}

public class TestAccount
{
    public int TestAccountId { get; set; }
    public int ApplicationId { get; set; }
    public string Name { get; set; }
    public virtual Application Application { get; set; }
}

EF Mapping看起来像这样:

modelBuilder.Entity<Application>()
    .HasMany(a => a.TestAccounts)
    .WithRequired(t => t.Application)
    .WillCascadeOnDelete(false);

在我的代码的一部分中,我想检索Application的数据并拥有 它返回TestAccount数据。

在我的代码的另一部分,我想检索Application和的数据 让它不返回TestAccount数据。

有没有办法可以用LINQ或其他方式实现这一点?

1 个答案:

答案 0 :(得分:0)

此问题已在此处得到解答:Disable lazy loading by default in Entity Framework 4

基本上,在DbContext的构造函数中,只需添加:

this.Configuration.LazyLoadingEnabled = false;

我希望这会有所帮助。

修改

另外,如果您想知道以后如何手动加载它,那么使用Include()应该是一个简单的问题:

var query = context.Application.Include(x => x.TestAccounts).ToList()