How to get Dapper to ignore/remove underscores in field names when mapping?

dapper mapping postgresql

Question

There are many ways to map database field names to class names, but what is the simplest way to just remove the underscores?

    public IEnumerable<PersonResult> GetPerson(int personId)
    {
        using (var dbConnection = _dbConnectionFactory.Create(ConnectionStrings.ProjectXYZ))
        {
            IEnumerable<PersonResult> result =
                dbConnection.Query<PersonResult>("fn_get_person", new { personId },
                    commandType: CommandType.StoredProcedure).ToList();

            return result;
        }
    }

Table and database fields:

person
-------- 
person_id
full_name

Class that works: (dapper already ignores capitalization)

public class PersonResult
{    
    public int Person_Id { get; set; }
    public string Full_Name { get; set; }
}

What I would like to change the class to:

public class PersonResult
{    
    public int PersonId { get; set; }
    public string FullName { get; set; }
}

Accepted Answer

Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true;

job done ;p


Popular Answer

The readme doesn't show any support for renaming columns. You could alias them in select:

select person_id as personid, full_name as fullname from fn_get_person();

as suggested in this answer.



Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Is this KB legal? Yes, learn why