C#Lambda表达式映射多个条件

IEx*_*ble 5 c# lambda

我正在使用Enterprise Library.我想将列(整数类型)映射到Enum Type.

Enum BloodGroup Type
{

  OPositive,
  ONegative,
  ABPositive,
  ABNegative,  
  BPositive,
  BNegative,
  NotSet 
} 
Run Code Online (Sandbox Code Playgroud)

我将Database Table的列映射到C#Types(Class Employee)属性.

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();
Run Code Online (Sandbox Code Playgroud)

代码工作正常但我想在WithFun 扩展方法中映射Enum的多个条件. 我的意思是类似的

.WithFun(rec=> rec.IsDBNull(rec.GetOrdinal("BloodGroup")) ?   BloodGroup.NotSet
               rec.GetOrdinal("BloodGroup")==1 ?BloodGroup.OPositive
               rec.GetOrdinal("BloodGroup")==2 ?BloodGroup.ONegative
         )
Run Code Online (Sandbox Code Playgroud)

帮我查一下多种情况?

Amy*_*y B 2

rec.IsDBNull(rec.GetOrdinal("BloodGroup")) ? BloodGroup.NotSet :
rec.GetOrdinal("BloodGroup")==1 ? BloodGroup.OPositive :
rec.GetOrdinal("BloodGroup")==2 ? BloodGroup.ONegative :
BloodGroup.NotSet
Run Code Online (Sandbox Code Playgroud)

您需要添加的只是一些冒号和最后的 else 表达式。请参阅三元运算符