【问题标题】:Mapping enums while using dapper使用 dapper 时映射枚举
【发布时间】:2015-06-26 22:19:51
【问题描述】:

我有以下问题。我正在使用 Dapper 连接到数据库,数据库中的 varchar 字段是我的对象中的枚举。如果枚举与数据库中的字符串同名,那么 Dapper 将数据库对象映射到我的 DTO 是没有问题的。不幸的是,数据库中的字符串不是很用户友好,我想知道是否有办法映射它们或转换(仅限枚举)以使用更用户友好的版本。例如,某个字段的数据库值:

SomeVeIRdLooking_Value

我希望它映射到:

public enum MyEnum {
    MyFormattedValue
}

【问题讨论】:

  • 我不认为这是 dapper 目前支持的场景。它支持数字转换和直接名称转换。不过,我会在使用 PC 时检查代码

标签: enums dapper


【解决方案1】:

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

    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();

【讨论】:

  • 感谢您的回答,但这不是我想要的。查询是一个 select * from... 里面有多个枚举。
猜你喜欢
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
  • 2017-03-03
相关资源
最近更新 更多