Dapper枚举映射

Mar*_*ias 7 .net dapper

我需要有关使用Dapper和Oracle映射枚举的帮助.

我在Oracle类型NUMBER(1)中有一个字段,必须在我的实体中变成一个枚举.

public Status Status { get; set; }
Run Code Online (Sandbox Code Playgroud)

状态是枚举:

public enum Status
{
    [Description("Inactive", "0")]
    Inactive = 0,

    [Description("Active", "1")]
    Active = 1,
 }
Run Code Online (Sandbox Code Playgroud)

如何使用Dapper进行映射?

Mar*_*ell 6

枚举应该Ju​​stWork™用于整数或字符串表示.如果它不起作用,你必须更具体地说明它抛出的任何异常.例如,大声思考和纯粹的猜测,但是:IIRC Oracle习惯于将大数字想象为64位,我想知道ebun映射代码是否处理所有类型的数字转换.如果没有,那就是一个错误.

那么:它有用吗?

  • @KevinBBurns 多年来一直在回答问题:) (2认同)

Cpt*_*ger 5

只是为了明确其他答案中的合理建议。您的数据库可能将数据存储在名为的列中,StatusId而您对象的属性可能只是Status.

我通常通过在 SQL 查询中使用别名来解决这个问题:

SELECT StatusId AS Status FROM Table

Dapper 隐式地了解如何将int数据库字段映射到 C# 枚举。我通常给我的枚举明确的值,使事情尽可能清楚,例如

public enum Status
{
   Active = 1,
   Inactive = 2
}
Run Code Online (Sandbox Code Playgroud)