簡體   English   中英

實體框架在一個請求中加載多個集合

[英]Entity Framework load multiple collections in one request

在基本方面,我正在尋找在一個請求中獲取實體的關聯集合的最簡單方法。

using (var context = new DbContext())
 {
   context.Users.Attach(user);
   context.Entry(user)
   .Collection(f => f.Followers)
   .Query()
   .Where(x => x.Whatever)
   //.Collection(r => r.Requests) doesn't work
   //.Collection(b => b.Blocks) doesn't work
   .Load();
 }

我知道我可以將它們分為3個不同的請求,但是我只想一次訪問數據庫。

另外,我能夠做到這一點:

var user = context.Users
           .Include(f => f.Followers)
           .Include(r => r.Requests)

上面方法的問題是我無法使用.Where子句過濾include中的集合。

這個問題非常多: EF 6過濾子集合

以及: 實體框架查詢多個集合

哪一個都無法通過一個請求完成,所以我猜想它不可能嗎?

EF在其基礎上不支持這一點。

您可以將其拆分為3個獨立的查詢,並使用一些外部庫在一次往返中完成它,例如EntityFramework.Extended nuget庫的Future Queries

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM