假设 Date
是一个可空的 DateTime
:
Mapper.CreateMap<SomeViewModels, SomeDTO>()
.ForMember(dest => dest.Date,
opt => opt.MapFrom(src =>
{
DateTime? finalDate = null;
if (src.HasDate == "N")
{
// so it should be null
}
else
{
endResult = DateTime.Parse(src.Date.ToString());
}
return finalDate;
}));
我得到的错误是:
错误 30:带有语句体的 Lambda 表达式不能转换为表达式树。
当然,我完全意识到我可以简化查询,比如:
Mapper.CreateMap<SomeViewModels, SomeDTO>()
.ForMember(dest => dest.Date,
opt => opt.MapFrom(src => src.HasDate == "N" ? null : DateTime.Parse(src.Date.ToString())));
但是如果我坚持保留第一个例子的结构,因为我有更复杂的if else语句,第二个例子将无法满足,或者至少不容易阅读?