顯式載入

關閉 Lazy 載入後,你可以通過顯式呼叫條目的 Load 方法來延遲載入實體。引用用於載入單個導航屬性,而 Collection 用於獲取集合。

Company company = context.Companies.FirstOrDefault();
// Load founder
context.Entry(company).Reference(m => m.Founder).Load();
// Load addresses
context.Entry(company).Collection(m => m.Addresses).Load();

正如在 *Eager 載入中一樣,*你可以使用上述方法的過載來按名稱載入 entiteis:

Company company = context.Companies.FirstOrDefault();
// Load founder
context.Entry(company).Reference("Founder").Load();
// Load addresses
context.Entry(company).Collection("Addresses").Load();

過濾相關實體

使用 Query 方法,我們可以過濾載入的相關實體:

Company company = context.Companies.FirstOrDefault();
// Load addresses which are in Baku
context.Entry(company)
    .Collection(m => m.Addresses)
    .Query()
    .Where(a => a.City.Name == "Baku")
    .Load();