Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dapper use singular table name

Tags:

c#

dapper

I experimented with Dapper and Dapper.Contrib. I have the following class:

public class Customer
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime DateOfBirth { get; set; }
    public bool Active { get; set; }
}

It is beeing mapped to the table "Customers" which is pluralized. Is there a simple way to make Dapper use singular table names for all tables?

like image 264
trenki Avatar asked Aug 25 '15 13:08

trenki


1 Answers

Dapper.Contrib supports the Table attribute. Use it to manually specify the name of the table that an entity uses. See the docs for further information.

Alternatively there is a static delegate on SqlMapperExtensions called TableNameMapper. You can replace this with an implementation that performs the pluralization. PluralizationService in the framework can help you here.

It is used as follows:

SqlMapperExtensions.TableNameMapper = (type) => {
    // do something here to pluralize the name of the type
    return type.Name;
};
like image 186
Dean Ward Avatar answered Oct 23 '22 00:10

Dean Ward