特别是标题为“显式加载相关实体时应用过滤器”的部分。
我需要做类似的事情:
db.Configuration.LazyLoadingEnabled = false;
var class = db.Classes.Find(1);
db.Entry(class).Collection(c => c.Students).Query().Where(s => s.grade > 2.0).Load();
当我逐步完成并观看 SQL 分析器时,我看到了加载类的查询。然后我看到应该加载学生的查询,但是 class.Students 从未填充并保持为空。但是,如果我从 SQL 分析器复制学生查询并自己运行,则会返回相应的学生。似乎实体框架正在运行学生查询并返回正确的结果,但没有将它们附加到类对象。
有一些方法可以解决这个问题,但我想知道我是否错过了一步,或者我是否没有正确使用 .Load() 。