2013-05-10 11 views
8

Ich habe eine Klasse Benutzer, wo Rolle ist Aufzählung mit Werten: Mitarbeiter, Admin etc ... Dapper löst eine Ausnahme: "Die Mitglied Rolle des Typs System.Enum kann nicht als Parameterwert verwendet werden"Unterstützt Dapper Enums?

Unterstützt Dapper enums?

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

Antwort

8

Aufzählungen werden unterstützt, aber Enum nicht: p

Also, wenn Sie haben:

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

fein, dass sollte dann funktionieren; jedoch

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

wird nicht. Benutzt du vielleicht letzteres?

+0

ja, ich benutze die letzte, aber wie sollte die MemberRole dann aussehen? MemberRole: enum ... ja? – Sergey

+0

ah. Ich verstehe was du meinst. Danke, es funktioniert für mich! Du hast mir sehr geholfen – Sergey

+0

@Sergey nur 'public enum MemberRole {Mitarbeiter, Admin, ...}'. Sie sollten ** niemals ** normalerweise 'Enum' verwenden - das ist tatsächlich wirklich ineffizient. Sie sollten nur die typisierte Enumeration verwenden. –