访问Eager加载的导航属性会导致延迟加载

时间:2015-05-14 23:03:02

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

我在Navigation Property语句中有Eager Loaded using。现在,在我看来,当我尝试为不存在的FK(主表中的fe -1或已删除的行)访问该属性时,EF尝试延迟加载并失败,因为上下文已经处理好了。有什么办法可以防止这种异常吗?第一个选项是捕捉它,另一个选择是在同一场合关闭Lazy LoadingProxy 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);
}

0 个答案:

没有答案