title: NET Core MongoDb Update/Replace exclude fields
body: <p>I'm trying to complete a general repository for all of the entities in my application. I Have a <code>BaseEntity</code> with property <code>Id</code>, <code>CreatorId</code> and <code>LastModifiedUserId</code>. Now I'd like to Update a record in a collection, without having to modify the field <code>CreatorId</code>, so I have (from the client) an Entity valorized with some fields updated that I want to update. 
  Hi have 2 ways:</p>
  
  <ol>
  <li>UpdateOneAsync</li>
  <li>ReplaceOneAsync</li>
  </ol>
  
  <p>The repo is created like this: </p>
  
  <pre><code>public class BaseRepository&lt;T&gt; : IRepository&lt;T&gt; where T : BaseEntity 
  {
     public async Task&lt;T&gt; Replace/Update(T entity){...}
  }
  </code></pre>
  
  <p>So it's very hard to use Update(1), since I should retrieve with reflection all the fields of T and exclude the ones that I don't want to update.
  With Replace(2) I cannot find a way to specify which fields i should exclude when replacing an object with another. <code>Projection</code>property in <code>FindOneAndReplaceOptions&lt;T&gt;()</code> just excludes the fields on the document that is returned after the update. </p>
  
  <p>Am I missing a way in the <code>replace</code> method to exclude the fields or should I try to retrieve the fields with reflection and use a <code>Update</code>?</p>