使用 AutoMapper 创建 DateTime

Creating a DateTime using AutoMapper

我正在努力从(年、月、日)创建一个从数据库返回的 DateTime 对象。我是 AutoMapper 的新手,所以向正确的方向轻推会很棒。

这是包含 DateTime 对象的 ViewModel 以及创建 DateTime 需要使用的三个值:

public class EnquiriesListViewModel
{
    // other field elided
    public sbyte flightDay;
    public sbyte flightMonth;
    public bool flightYear
    public DateTime flightDate;
    // other field elided
}

我希望 AutoMapper 从其他三个值构造 flightDate。我尝试了各种方法,其中一些甚至无法编译!

像这样:

Mapper.CreateMap<enquiryListEntry, EnquiriesListViewModel>()
    .ForMember(dest => dest.flightDate,  /* what goes in here? */);

期待您的回复。

Mapper.CreateMap<enquiryListEntry, EnquiriesListViewModel>()
    .ForMember(dest => dest.flightDate, opt => opt.MapFrom(src => new DateTime(src.flightYear, src.flightMonth, src.flightDay)));

应该做。

这个解决方案来得太晚了,但它很好,因为它适用于 .NET 4.6.1

Mapper.CreateMap<enquiryListEntry, EnquiriesListViewModel>()
      .ForMember(dest => dest.flightDate, 
                 opt => opt.AddTransform(src => new DateTime(src.Year,
                                                             src.Month,
                                                             src.Day)));