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

时间:2013-10-30 21:44:37

标签: c# entity-framework linq-to-entities lazy-loading ef-database-first

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

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

  • Posts.Comments
  • Posts.CommentsReference
  • Posts.Categories

这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()

当我尝试导航到Comments时,会抛出 ObjectDisposedException

为什么呢?是因为加入?

已编辑:使用@ user2674389的代码建议

1 个答案:

答案 0 :(得分:0)

最后我切换到了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表达式中做到这一点......