如何構建Linq表達式來選擇嵌套對象?

c# entity-framework-core linq

我使用通用存儲庫從數據庫中檢索對象,而EntityFramework Core中沒有延遲加載,有時我需要選擇相關對象。

回購代碼如下所示:

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(...)來自上下文的.Include(...).ThenInclude(...) ),類似.GetSingle(id, x=>Parent,parent=>Grand,grand=>GrandGrand) 。我該怎麼做呢?

一般承認的答案

看起來如果你不想改變你的GetSingle你可以放入正確的lambdas來包含嵌套對象?

`.GetSingle(id, x=>x.Parent, x=>x.Parent.Grand, x=>x.Parent.GrandGrand)


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow