我有以下场景(合并在一行)
var User = db.Entry(obj).Collection(collection).Query().Where(/*some condition*/).FirstOrDefault(/*some condition*/);
假设User Object将Posts作为虚拟属性(急切地加载它们),前一行的结果只为该用户加载一个帖子,而如果我执行以下操作之一:
var Users = db.Entry(obj).Collection(collection).Query().ToList().Where(/*some condition*/).FirstOrDefault(/*some condition*/);
//added ToList() after the Query method
//OR
db.Users.Where(/*full condition*/).FirstOrDefault()
//OR
db.Users.FirstOrDefault(/*full condition*/)
所有这些都加载了用户的所有帖子,我在第一个查询中缺少的内容,以及如何通过它热切地加载所有帖子?
答案 0 :(得分:3)
尝试在第一次查询中.Include(VirtualPropertyToEagerLoad)
后添加.Where
。
有关使用预先加载的信息,请参阅此MSDN post。