, Include . . , foreach , ForumPost:
List<ForumPost> result = ctx
.ForumPosts
.Where(i => i.Thread.ID == threadID)
.OrderByDescending(i => i.Date)
.Take(N).ToList();
foreach(var post in result){
ctx.Entry<ForumPost>(post).Collection("Comments")
.Query()
.Take(k);
}
: ( db)
, , --, , , EF6. -- , , , reset all MemberEntries Unchanged, , .
ctx.Configuration.LazyLoadingEnabled = false;
var stateManager = ((IObjectContextAdapter)ctx).ObjectContext.ObjectStateManager;
var result = ctx.ForumPosts.Where(i => i.Thread.ID == threadID)
.Select(e => new { e, Comments = e.Comments.Take(k) })
.AsEnumerable()
.Select(e => {
e.e.Comments = e.Comments;
foreach(var c in e.Comments) {
stateManager.ChangeRelationshipState(e.e, c, o => o.Comments,
EntityState.Unchanged);
}
return e.e;
}).ToList();
Local. db ( AsEnumerable()).