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你能详细说明一下吗? –