1
基本上,我正在尋找最簡單的方法來獲取一個請求中實體的關聯集合。實體框架在一個請求中加載多個集合
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)
與方法的問題上面我無法用。凡子句來過濾包括集合。
這個問題非常多: EF 6 filtering child collections
除了: Entity Framework Query multiple collections
兩者都不能夠以一個請求被被拉斷,所以我猜它不可能?
如果你想在一次往返中過濾相關的實體,那麼你將需要預計你的查詢的預期結果 – octavioccl
實際上使用一個單獨的SQL(db trip)來返回多個子集合,如'Include'示例比單獨使用往返效率要低得多,因爲返回的結果集必須是所有具有聯合字段的子記錄(大多數爲「null」)的笛卡爾乘積。所以,即使你能以某種方式工作,也不要這樣做。 –
@octavioccl你能詳細說明一下嗎? –