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;             
    }           
  }     
}