将数据库列值映射到C#枚举属性值属性、数据库

2023-09-04 01:58:31 作者:浅唱々樱花落

我有一个简单的类,其中一个属性是枚举。例如:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public Gender Gender { get; set; }
}

public enum Gender 
{
    [EnumMember(Value = "M")]
    Male, // database uses 'M' instead of 'Male'

    [EnumMember(Value = "F")]
    Female // database uses 'F' instead of 'Female'
}

我的数据存储的性别值略有不同--M而不是MaleF而不是Female。例如:

简述JavaScript中的Object.defineProperty 不可枚举解决办法 新定义的属性值不可修改解决办法 新定义的属性值不可删除解决办法 get 函数 set 函数

如何将M的DB值映射到Gender.Male的枚举值,同样将F映射到Gender.Female

推荐答案

此用例在Dapper中有一个打开的问题:#259。在修复之前,似乎无法使用枚举的别名。