[英]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.