我正在使用通用存儲庫從數據庫中檢索對象,而惰性加載在EntityFramework Core中不可用,有時候我需要選擇相關的對象。如何構建Linq表達式來選擇嵌套對象?
回購的代碼如下所示:
public T GetSingle(Expression<Func<T, bool>> predicate, params Expression<Func<T, object>>[] includeProperties)
{
IQueryable<T> query = _context.Set<T>();
foreach (var includeProperty in includeProperties)
{
query = query.Include(includeProperty);
}
return query.Where(predicate).FirstOrDefault();
}
,並告訴它來選擇相關的對象很簡單:
.GetSingle(id,x=>x.ObjectviaFK)`
我不能換我的頭周圍建設,使一個表達式選擇嵌套對象(類似於上下文中的.Include(...).ThenInclude(...)
),如.GetSingle(id, x=>Parent,parent=>Grand,grand=>GrandGrand)
。我該怎麼做呢?
通常我使用linq查詢調用的非linq遞歸輔助方法。 – jdweng