我无法解决以下问题。我觉得这是 LINQ 和表达式树的限制,但不确定如何接受 lambda 主体。我可以在不创建自定义转换器的情况下实现这一目标吗?
Mapper.CreateMap<I_NEWS, NewsModel>()
.ForMember(x => x.DateCreated, opt => opt.MapFrom(src => {
var dt = (DateTime)src.DateCreated;
return dt.ToShortDateString();
}));
我收到这个错误: 带有语句体的lambda表达式不能转换为表达式树
最佳答案
为了使用 lambda 主体,请使用 .ResolveUsing
而不是 .MapFrom
。
根据 author :
MapFrom has some extra stuff that needs expression trees (like null checking etc).
所以你的陈述看起来像这样:
Mapper.CreateMap<I_NEWS, NewsModel>()
.ForMember(x => x.DateCreated, opt => opt.ResolveUsing(src => {
var dt = (DateTime)src.DateCreated;
return dt.ToShortDateString();
}));
关于c# - AutoMapper 并将日期时间转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15007660/