我已禁用延迟加载,但实体是从数据库中自动加载访问属性指实体/实体时。为什么?它不应该再被访问?禁用延迟加载仍会加载相关的实体。为什么?
My EF version="6.1.3"
以下线路负荷部门的数据,而我期待它不应该,因为我已经停用延迟加载,并导航属性非虚。
Student student = context.Student.select(x => x.Department).First();
类:
public class Student
{
public string Name { get; set;}
public string Age { get; set;}
public string Date { get; set;}
public Department department { get; set }
}
public class Department
{
public string Id { get; set; }
public class Name { get; set; }
public Student Student { get; set }
}
语境
public StudentContext : DbContext
{
public StudentContext()
{
this.Configuration.LazyLoadingEnabled = false;
}
}
您的查询明确要求部门。当然,它会加载部门数据。 – Amy
所以你想[懒加载](https://msdn.microsoft.com/en-us/library/jj574232(v = vs.113).aspx)?你已经配置了所有配置以便加载(不虚拟,访问孩子,关闭它)。 –
谢谢,所以我对延迟加载的理解是错误的。你的意思是,尽管延迟加载被禁用,但如果我们使用x.blah访问导航属性,EF会显式加载它,并不会抱怨“懒惰加载已禁用,因此我无法加载它。”更好地尝试“加载加载”或“显式加载” ,“ – immirza