title: Dapper - Mapping class names/properties to database fields
body: <p>I have a class... </p>
  
  <pre><code>public class WireTransferRequest
      {
          public int RequestID { get; set; }
          public DateTime RequestDate { get; set; }
          public string RequesterName { get; set; }
          public string AuthorizerName { get; set; }
          public string AuthorizerSignature { get; set; }
          public DateTime TransferDate { get; set; }
          public string CustomerNames { get; set; }
          public string Reasons { get; set; }
          public string Amounts { get; set; }
          public decimal TotalOfAmounts { get; set; }
      }
  </code></pre>
  
  <p>I have a table....</p>
  
  <pre><code>CREATE TABLE IF NOT EXISTS `digital_forms`.`wire_transfer_request` (
    `request_id` INT NOT NULL,
    `request_date` DATETIME NOT NULL,
    `requester_name` VARCHAR(64) NOT NULL,
    `authorizer_name` VARCHAR(64) NULL,
    `authorizer_signature` VARCHAR(64) NULL,
    `transfer_date` DATETIME NULL,
    `customer_names` VARCHAR(64) NULL,
    `customer_reasons` VARCHAR(128) NULL,
    `customer_amounts` VARCHAR(128) NULL,
    `total_of_customer_amounts` DECIMAL(19,2) NULL,
    PRIMARY KEY (`request_id`),
    INDEX `idx_request_date` (`request_date` ASC) VISIBLE,
    INDEX `idx_requestor_name` (`requestor_name` ASC) VISIBLE)
  ENGINE = InnoDB
  
  </code></pre>
  
  <p>and I have a query... </p>
  
  <pre><code>    public override void Add(WireTransferRequest request)
          {
  
              if (request == null)
                  throw new ArgumentNullException(nameof(request));
  
              request.RequestID = _transaction.Connection.ExecuteScalar&lt;int&gt;(
  
              "INSERT INTO wire_transfer_request(request_date, requester_name, authorizer_name," +
                                               "authorizer_signature, transfer_date, customer_names," +
                                               "customer_reasons, customer_amounts, total_of_customer_amounts" +
  
              "VALUES (@request_date, @requester_name, @authorizer_name," +
                                               "@authorizer_signature, @transfer_date, @customer_names," +
                                               "@customer_reasons, @customer_amounts, @total_of_customer_amounts; SELECT SCOPE_IDENTITY()",
                                                new
                                               {
                                                   request_date = request.RequestDate,
                                                   requester_name = request.RequesterName,
                                                   authorizer_name = request.AuthorizerName,
                                                   authorizer_signature = request.AuthorizerSignature,
                                                   transfer_date = request.TransferDate,
                                                   customer_names = request.CustomerNames,
                                                   customer_reasons = request.Reasons,
                                                   customer_amounts = request.Amounts,
                                                   total_of_customer_amounts = request.TotalOfAmounts,
                                               },
                                               _transaction
                                               );
          }
  </code></pre>
  
  <p>I want Dapper to be able to recognize and map the column and table names appropriately. A quick Google search of this turns up a lot of old, old results so I'm curious as to an updated (if possible) solution/work around for this. </p>
  
  <p>I have tried using the MatchNamesWithUnderscores mapper but it does not achieve the result I desire with insertions.</p>