我需要有关使用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进行映射?
枚举应该JustWork™用于整数或字符串表示.如果它不起作用,你必须更具体地说明它抛出的任何异常.例如,大声思考和纯粹的猜测,但是:IIRC Oracle习惯于将大数字想象为64位,我想知道ebun映射代码是否处理所有类型的数字转换.如果没有,那就是一个错误.
那么:它有用吗?
只是为了明确其他答案中的合理建议。您的数据库可能将数据存储在名为的列中,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)