c# - AutoMapper 并将日期时间转换为字符串

标签 c# .net linq automapper

我无法解决以下问题。我觉得这是 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/

相关文章:

c# - 为什么代码覆盖率在 ReSharper 中不起作用?

C#:使用 SocketAsyncEventArgs 的 SSL?

c# - 合约="*"是什么意思?

c# - WCF服务,如何隐藏内部方法?

asp.net - 当还安装了 NETFX 4.6.1 工具时,如何配置 Visual Studio 以使用 NETFX 4.7 工具

.net - Exchange EWS API .NET - CalendarEvents.Details 始终为 null

c# - 在任何情况下,异步等待方法内的对象更改在完成后是否可见?

c# - 如何使用 Dynamic Linq 进行左外连接?

performance - Windows Azure 表存储 LINQ 运算符

c# - Linq 按 Null 数量排序结果