我有这样的事情:
var tmp =_forumsDb.Threads
.Where(t => t.Id == variable)
.Select(t => new { Thread = t, Posts = t.Posts.Take(1) })
.Single();
现在,我希望tmp.Thread.Posts.Count();
为1,但它会占用我在数据库中的所有帖子。是否可以使用显示大量帖子的投影,在单个查询中执行而不关闭延迟加载?
编辑: 我尝试过这样的事情,但它也不起作用:
var tmp =_forumsDb.Threads
.Where(t => t.Id == variable)
.Select(t => new { Thread = t, Posts = t.Posts.OrderBy(p => p.DateCreated).Take(1) })
.Select(t => t.Thread)
.Single();
答案 0 :(得分:2)
tmp.Thread.Posts
是为其配置延迟加载的导航属性。由于尚未加载,因此访问它会加载所有剩余的帖子。
tmp.Posts
不是导航属性。这是您应该能够访问而不会触发另一个查询的那个。