2015-03-06 2 views
4

Как я могу заставить dapper использовать строковое значение перечисления. В приведенном ниже примере используется численное значение перечисления. При чтении из базы данных dapper правильно преобразует строку в перечисление.Обработка перечислений на вставке с помощью dapper

public enum Category { A, B } 

public Product 
{ 
    public Category Cat {get;set;} 
    public int Id {get;set;} 
} 

Product p = new Product() {Cat = Category.A, Id=22} ; 
connection.Execute("Insert into Products (Cat, Id) Values ",p); 

В этом случае в базе данных в столбце Cat У меня есть значение 1 вместо A

+0

Не уверен, если вы можете. Вы не можете с EF думать, что Enum внутренне представлены в виде числовых значений, это имя, которое вы используете из кода C#. – Juan

ответ

1

Самый простой способ я думаю, что это:

connection.Execute("Insert into Products (Cat, Id) Values ", new { p.Id, Cat = p.Cat.ToString()); 
Смежные вопросы