我正在使用企业库。我想将列(整数类型)映射到枚举类型。
说
Enum BloodGroup Type
{
OPositive,
ONegative,
ABPositive,
ABNegative,
BPositive,
BNegative,
NotSet
}
我正在将数据库表的列映射到 C# 类型的(员工类)属性。
IRowMapper<Employee> addressMapper = MapBuilder<Employee>
.MapAllProperties() // map all properties
.Map(p=>p.BloodGroup) // override BloodGroup property
.WithFunc(rec => rec.IsDBNull(rec.GetOrdinal("BloodGroup"))
? BloodGroup.NotSet
: BloodGroup.OPositive)
.Build();
代码工作正常,但我想在 WithFun
扩展方法中映射枚举的多个条件。我的意思是类似
.WithFun(rec=> rec.IsDBNull(rec.GetOrdinal("BloodGroup")) ? BloodGroup.NotSet
rec.GetOrdinal("BloodGroup")==1 ?BloodGroup.OPositive
rec.GetOrdinal("BloodGroup")==2 ?BloodGroup.ONegative
)
帮我查多个条件?
最佳答案
rec.IsDBNull(rec.GetOrdinal("BloodGroup")) ? BloodGroup.NotSet :
rec.GetOrdinal("BloodGroup")==1 ? BloodGroup.OPositive :
rec.GetOrdinal("BloodGroup")==2 ? BloodGroup.ONegative :
BloodGroup.NotSet
您需要添加的只是一些冒号和最后一个 else 表达式。参见 ternary operator .
关于C# Lambda 表达式映射多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3991616/