具有延迟加载的实体框架 6 会抛出 ObjectDisposedException

本文关键字:ObjectDisposedException 框架 延迟加载 实体 | 更新日期: 2023-09-27 18:37:28

我首先使用带有延迟加载和数据库的EF6。

我在实体帖子中有此导航属性:

  • 帖子.评论
  • 帖子.评论参考
  • 帖子.类别

而这 2 个代码:

代码 1

var query = Context.Post.Include(p => p.Categories)
   .ToList()

这工作正常,我可以导航到类别

代码 2

var query = Context.Posts.Include(p => p.Comments)
   .Join(Context.Users,
   t => t.WritterID,
   h => h.UserID,
   (t, h) => new { Posts= t, Users= h })
   .Where(q => q.Users.Name == "foo user")
   .Select(x => x.Posts)
   .ToList()

当我尝试导航到注释时,这会抛出一个 ObjectDisposedException

为什么?是因为加入吗?

已编辑:包含@user2674389的代码建议

具有延迟加载的实体框架 6 会抛出 ObjectDisposedException

最后,

我切换到 LINQ to Entities,它工作正常:

var query = from c in Context.Posts.Include(p => p.Comments)
        join h in Context.Users on c.WritterID equals h.UserID
        where h.Users.CompareTo("foo user") == 0
        select c;

但我仍然想知道如何在 lambda 表达式中做到这一点......

相关文章:
  • 没有找到相关文章