使用dapper时映射枚举

时间:2015-04-20 09:13:49

标签: enums dapper

我有以下问题。我正在使用Dapper连接到数据库,数据库中varchar的字段是我的对象中的枚举。如果枚举与数据库中的字符串同名,则Dapper将数据库对象映射到我的DTO没有问题。不幸的是,数据库中的字符串不是非常用户友好,我想知道是否有一种方法来映射它们或转换(只有枚举)以使用更多用户友好的版本。例如,字段的数据库值:

SomeVeIRdLooking_Value

我希望它映射到:

public enum MyEnum {
    MyFormattedValue
}

1 个答案:

答案 0 :(得分:0)

您可以从数据库中选择字符串值并手动转换。

    public enum MyEnum
    {
        None,
        Success,
        Failure
    }

    var enums = connection.Query<string>("select 'None' union select 'Success' union select 'Failure'")
            .Select(x => Enum.Parse(typeof (MyEnum), x)) //use your own method to parse enum from string
            .ToList();