title: Differnet data models using the same properties in PUT, POST and GET
body: <p>I have GetAccount (GET), UpdateAccount (PUT) and CreateAccount (POST) REST API methods.</p>
  <p>All of these methods are related to the ACCOUNTS table in a database.</p>
  <p>I have created 3 models Account, UpdateAccount and CreateAccount.</p>
  <p>Account</p>
  <pre><code>public int AccountID {get; set;}
  public string FirstName {get; set;}
  public string LastName {get; set;}
  public string Email {get; set;}
  public bool DeletedYN {get; set;}
  </code></pre>
  <p>UpdateAccount</p>
  <pre><code>public string FirstName {get; set;}
  public string LastName {get; set;}
  public string Email {get; set;}
  public bool DeletedYN {get; set;}
  </code></pre>
  <p>CreateAccount</p>
  <pre><code>public string FirstName {get; set;}
  public string LastName {get; set;}
  public string Email {get; set;}
  </code></pre>
  <p>GetAccount returns an Account.
  UpdateAccount requires an UpdateAccount as a parameter and returns an Account.
  CreateAccount requies a CreateAccount as a parameter and returns an AccountID.</p>
  <p>See how there are a lot of properties that are the same across each model. But obviously I do not want a user to update an AccountID or create a deleted Account. Its a lot repeated code and there can be much bigger models that are set out in this way.</p>
  <p>What is the best way not repeat the same properties through these models? For some reason an AccountBase class doesn't feel right..</p>