Manually map column names with class properties

dapper

Solution

This works fine:

var sql = @"select top 1 person_id PersonId, first_name FirstName, last_name LastName from Person";
using (var conn = ConnectionFactory.GetConnection())
{
    var person = conn.Query<Person>(sql).ToList();
    return person;
}

Dapper has no facility that allows you to specify a Column Attribute, I am not against adding support for it, providing we do not pull in the dependency.

Problem

I am new to the Dapper micro ORM. So far I am able to use it for simple ORM related stuff but I am not able to map the database column names with the class properties. For example, I have the following database table: ``` Table Name: Person person_id int first_name varchar(50) last_name varchar(50) ``` and I have a class called Person: ``` public class Person { public int PersonId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } ``` Please note that my column names in the table are different from the property name of the class to which I am trying to map the data which I got from the query result. ``` var sql = @"select top 1 PersonId,FirstName,LastName from Person"; using (var conn = ConnectionFactory.GetConnection()) { var person = conn.Query<Person>(sql).ToList(); return person; } ``` The above code won't work as the column names don't match the object's (Person) properties. In this scenario, is there anything i can do in Dapper to manually map (e.g `person_id => PersonId`) the column names with object properties?

Original source

Related problems