2013-05-10 21 views
8

Ho un utente di classe dove il ruolo è enum con valori: Impiegato, Admin ecc ... Dapper genera un'eccezione: "Il ruolo membro di tipo System.Enum non può essere utilizzato come un valore di parametro"Dapper supporta Enums?

supportati da Dapper enumerazioni?

IDbConnection connection 
connection.Execute(sb.ToString(), entityToInsert, /*transaction: transaction*/tx, commandTimeout: commandTimeout); 

risposta

8

enumerazioni sono supportati, ma non è Enum: p

Quindi, se si dispone di:

class User { 
    public MemberRole Role {get;set;} 
} 

allora che dovrebbe funzionare bene; tuttavia

class User { 
    public Enum Role {get;set;} 
} 

no. Stai forse usando quest'ultimo?

+0

sì, io uso l'ultimo, ma come dovrebbe apparire il MemberRole? MemberRole: enum ... si? – Sergey

+0

ah. Capisco cosa intendi. Grazie funziona per me! Mi hai aiutato molto – Sergey

+0

@Sergey semplicemente 'public enum MemberRole {Employee, Admin, ...}'. Non dovresti ** mai ** usare tipicamente 'Enum' - che in realtà è davvero inefficiente. Dovresti usare solo l'enum tipizzato. –