db.Entry.Collection.Query并没有急切地加载所有虚拟属性

时间:2013-08-10 07:01:26

标签: asp.net asp.net-mvc entity-framework eager-loading

我有以下场景(合并在一行)

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*/)

所有这些都加载了用户的所有帖子,我在第一个查询中缺少的内容,以及如何通过它热切地加载所有帖子?

1 个答案:

答案 0 :(得分:3)

尝试在第一次查询中.Include(VirtualPropertyToEagerLoad)后添加.Where

有关使用预先加载的信息,请参阅此MSDN post