Dapper:将字符串转换为枚举

joh*_*hnB 5 .net c# dapper

我是Dapper的新手,我正在试图弄清楚它是否可以处理映射数据库字符串到枚举; 默认情况下我不会发生这种情况.

例如,假设我使用此SQL

select customer_type from customers
Run Code Online (Sandbox Code Playgroud)

和这堂课

public class Customer
{
    ...
    public CustomerType CustomerType { get; set; }
    ...
}
Run Code Online (Sandbox Code Playgroud)

用这个枚举

public enum CustomerType
{
     Unknown,
     SomeCustomerType,
     ...
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我总是以默认的枚举值(Unknown)结束,而不是从数据库中映射字符串值.

谁知道我怎么能做到这一点?

编辑:我知道这可以使用数字字段,因为数字将转换为枚举,但这样做的缺点是必须确保数据库ID和枚举保持同步.我正在寻找类似但有字符串的东西.

小智 0

如果您将列名称别名为与您的属性名称相同,也应该有效:

SELECT REPLACE(customer_type, ' ','') As CustomerType FROM customers

如果数据库中的 customer_type 字段的值有空格,您还可以使用替换函数删除空格。