title: CQRS with MediatR and re-usability of commands
body: <p>Does it make sense to create commands that just hold objects? For example:</p>
  
  <pre><code>public class CreateCommand : IRequest
  {
     SomeDTO SomeDTO { get; set; }
  }
  
  public class UpdateCommand : IRequest
  {
     SomeDTO SomeDTO { get; set; }
  }
  </code></pre>
  
  <p>Or perhaps something like this (deriving):</p>
  
  <pre><code>public class UpdateCommand : SomeDTO, IRequest
  {
  }
  </code></pre>
  
  <p>Or commands/requests should be treated as DTOs themselves? I'm confused because I saw many ways of doing things. Also copying all properties to command/request classes doesn't sound like a nice thing to do.</p>
  
  <p>How do you do this in your projects?</p>
  
  <p>Do you map your commands directly to your domain models or you use commands just to pass DTOs?</p>
  
  <p>In case of using MVC framework what should be the input of my controller actions? Should it be a command, or should I create command inside my action implementation and send it? (I guess that will depend on how I model my commands)</p>