public BlogPost MakeCopy(int id) { using (var session = SessionFactory.OpenSession()) { var post = session.Query<BlogPost>().Single(x => x.Id == id); foreach (var comment in post.Comments) { session.Evict(comment); comment.Id = 0; } session.Evict(post); post.Id = 0; var newPost = session.Merge(post); session.Flush(); return newPost; } } }