我在實體框架理解延遲加載有問題5.使用延遲加載相關的實體時,我明白不加載,直到請求:實體框架5的延遲加載和提琴手
「當使用延遲加載,你最初的查詢不僅帶來目標 實體集,但每當你訪問一個導航屬性,另一個 查詢發出了對店裏來加載相關實體。 (reference)」
我有一個的ASP.NET Web有兩類API項目:
public class Farm
{
public int FarmId { get; set; }
public virtual ICollection<LandUnit> LandUnits { get; set; }
...
}
public class LandUnit
{
public int LandUnitId { get; set; }
...
}
我設置LazyLoadingEnabled = true,並且有我遵循的準則(reference)POCO類,但是當我用腳手架創建FarmController並調用它通過小提琴手,它表明:
JSON
{}
...
LandUnits
{}
...
如果我設置LazyLoadingEnabled =假,然後我得到:
JSON
{}
...
LandUnits=(null)
我誤解延遲加載的基本知識?在我看來,發生的事情與定義所說的相反。當延遲加載關閉時,相關實體不會被加載。當延遲加載時,加載相關的實體。
感謝偉大的反應!因此,當LazyLoadingEnabled = true時,api調用首先抓取Farm記錄(發出第一個SQL查詢),然後JSON序列化程序序列化結果以抓取LandUnits記錄(發出第二個SQL查詢)? – brudert
是的,這是正確的 – devdigital