我在Navigation Property
语句中有Eager Loaded
using
。现在,在我看来,当我尝试为不存在的FK
(主表中的fe -1或已删除的行)访问该属性时,EF
尝试延迟加载并失败,因为上下文已经处理好了。有什么办法可以防止这种异常吗?第一个选项是捕捉它,另一个选择是在同一场合关闭Lazy Loading
和Proxy Creation
......但是还有其他选项或检查可以执行吗?
public ActionResult Details(int id)
{
Post post;
using (var db = new BlogDbContext())
{
post = db.Posts.Where(p => p.Id == id)
.Include(p => p.Comments.Select(c => c.Author))
.SingleOrDefault();
}
if (post == null)
{
return HttpNotFound();
}
return PartialView(post);
}