我首先使用带有延迟加载和数据库的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的代码建议
最后,
我切换到 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 表达式中做到这一点......