簡體   English   中英

如何停止Entity Framework加載嵌套對象

[英]How do I stop Entity Framework from loading nested objects

我試圖弄清楚如何告訴Entity Framework如何為一對多關系渴望負載。 這是我面臨的一個示例情況。 我有兩個實體:

public class A
{
    public Guid ID { get; set; }
    public B B { get; set; }
}

public class B
{
    public Guid ID { get; set; }
    public ICollection<A> As { get; set; }
    public ICollection<C> Cs { get; set; }
}

public class C
{
   public Guid ID { get; set; }
}

如果我這樣做,我期望Context.B屬性As和Cs為null。 如果我做Context.A.Include('B')屬性B填充,並且Cs為null,這是我期望的,以及我想要的屬性As,但也填充了我不需要的屬性。 我想停止實體框架加載屬性為。 就像Entity Framework在說:“好吧,您想要實體A和B,哦,看起來B在其中包含As,所以我們也應該填充它。” 我不要

您需要在上下文級別啟用延遲加載,並將屬性標記為vritual

public class A
{
    public Guid ID { get; set; }
    public B B { get; set; }
}

public class B
{
    public Guid ID { get; set; }
    public virtual ICollection<A> As { get; set; }
    public virtual ICollection<C> Cs { get; set; }
}

public class C
{
   public Guid ID { get; set; }
}

public partial class MyDbContext : DbContext
{
    public MyDbContext(): base("name=MyConnection")
    {
        this.Configuration.LazyLoadingEnabled = true;
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM