1
我使用PredicateBuilder
將動態表達式傳遞給我的存儲庫中的一個方法,該方法在Where
子句中使用它。下面是相關庫代碼:PredicateBuilder和n + 1查詢
var results = context.Set<T>().AsExpandable.Where(where);
foreach (var includeProperty in includeProperties.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
results = results.Include(includeProperty);
}
return results.ToList();
在我的控制器我有這樣的:
var predicate = PredicateBuilder.True<Account>();
if (amount> 0)
predicate = predicate.And(d => d.Amount <= amount);
var model = AccountRepository.Get(predicate, "Owner").ToList();
return PartialView(model);
當我做出的「所有者」的屬性參考它使另一個往返到數據庫中,引起n + 1查詢問題。有沒有什麼解決方法可以避免這種情況?
看來,所有者屬性是延遲加載。你能用Accound代碼更新你的問題嗎? – giacomelli