我已禁用延遲加載,但實體是從數據庫中自動加載訪問屬性指實體/實體時。爲什麼?它不應該再被訪問?禁用延遲加載仍會加載相關的實體。爲什麼?
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