2015-08-25 16 views
8

Ho sperimentato con Dapper e Dapper.Contrib. Ho la seguente classe:Dapper usa il nome del tavolo singolare

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; } 
} 

Si beeing mappato alla tabella "Customers", che è pluralizzata. C'è un modo semplice per far usare a Dapper nomi di tabelle singolari per tutti i tavoli?

+0

Eventuali duplicati di [Dapper sqlmapperextensions aggiunge automaticamente "s" per tablename?] (Http://stackoverflow.com/questions/27341079/dapper-sqlmapperextensions-automatically- aggiunge-s-to-tablename) –

risposta

11

Dapper.Contrib supporta l'attributo Table. Usalo per specificare manualmente il nome della tabella che un'entità utilizza. Vedere lo docs per ulteriori informazioni.

In alternativa è disponibile un delegato statico su SqlMapperExtensions denominato TableNameMapper. È possibile sostituire questo con un'implementazione che esegue la pluralizzazione. PluralizationService nel framework può aiutarti qui.

È usato come segue:

SqlMapperExtensions.TableNameMapper = (type) => { 
    // do something here to pluralize the name of the type 
    return type.Name; 
}; 
Problemi correlati