基本上我正在寻找在一个请求中获取实体的关联集合的最简单方法。
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 filtering child collections
以及: Entity Framework Query multiple collections
其中任何一个都无法通过一个请求撤消,所以我猜它不可能?
答案 0 :(得分:0)
其基地的EF不支持。
您可以将其拆分为3个单独的查询,并使用一些外部库在单个往返中执行此操作,例如 EntityFramework.Extended nuget库的 Future Queries 。 / p>