2013-05-10 4 views
8

У меня есть пользовательский класс, где роль является перечисление со значениями: Сотрудник, Admin и т.д. ... Чудные бросает исключение: «Элемент Роль типа System.Enum не может быть использована в качестве значения параметра»Поддерживает ли Dapper Enums?

делает щеголеватую поддержку перечисления?

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

ответ

8

Перечисления поддерживаются, но Enum не является: р

Так что если у вас есть:

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

то, что должно работать нормально; однако

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

не будет. Возможно, вы используете последний?

+0

Да, я использую последний, но как должен выглядеть MemberRole? MemberRole: перечисление ... да? – Sergey

+0

ах. Я понимаю что ты имеешь ввиду. Спасибо, что это работает для меня! Вы мне очень помогли – Sergey

+0

@Sergey просто 'public enum MemberRole {Employee, Admin, ...}'. Вы должны ** никогда ** обычно использовать 'Enum' - это действительно неэффективно. Вы должны использовать только типизированное перечисление. –

Смежные вопросы