我有一个 Asp.net MVC 网站,我在其中使用数据存储中的实体框架来访问数据库(使用 POCO 实体)。
我不知道为什么,但有时,看起来延迟加载还没有完成:
代码不起作用的示例:
using(BusinessEntities context = new BusinessEntities()){
User user = context.Users.First(u=>u.Id == parameterId);
foreach(Post post in user.Posts){//user.Posts is null here and thrown an exception
//.. doing some things
}
}
但如果我这样做,它就完美了
using(BusinessEntities context = new BusinessEntities()){
User user = context.Users.Include("Posts").First(u=>u.Id == parameterId);
foreach(Post post in user.Posts){//user.Posts is null here and thrown an exception
//.. doing some things
}
}
但我不明白为什么延迟加载不起作用:
- 上下文未处理
- 它不是项目匿名对象或类似的东西
- 我知道我的代码中有很多地方我不必指出这一点。包括并做相关工作
- 我在我的 edmx 模型上将延迟加载启用设置为 True
什么可能导致这种行为?