我试图找出如何告诉实体框架如何急切加载一对多的关系。这是我面临的一个示例情况。我有两个实体:
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,我期望以及我想要的属性同样如此,但是我填充了我不想要的。我想阻止Entity Framework加载属性As。这就像实体框架说的那样“好吧你想要实体A和B哦,看看B有As,所以我们也应该填充它。”我不希望这样。
答案 0 :(得分:-2)
您需要在上下文级别启用延迟加载,并将该属性标记为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;
}
}