自动映射不映射不同的属性名称

时间:2017-04-07 11:19:20

标签: c# .net automapper

我有一个名为CarDataDTO的DTO类,其中有两个属性如下:

 public decimal FuelTankSize { get; set; }
 public decimal CarEngineOutput { get; set; }

我正在使用Dapper,我可以看到返回的数据并按预期映射到DTO中的属性。

我正在使用WebAPI将数据返回给用户界面 - 用户界面上的属性命名方式如下所示,名为CarData

 public decimal Size { get; set; }
 public decimal EngineOutput { get; set; }

所以我试图使用Automapper来映射这些属性,如下所示 - 我有一个Automapper配置类,其中包含一个Initialize方法,该方法在Application_Start

中的Global.asax.cs中调用
config.CreateMap<CarData, CarDataDTO>()
      .ForMember(dest => dest.FuelTankSize, opt => opt.MapFrom(src => src.Size))
      .ForMember(dest => dest.CarEngineOutput, opt => opt.MapFrom(src => src.EngineOutput))
      .ReverseMap();

然后我从DB获取WebAPI方法中的Data,它是一个数据列表并返回如下:

var carData = _myService.GetAllCarData().ToList();
//error checking etc removed for brevity
return Mapper.Map<IEnumerable<CarDataDTO>, IEnumerable<CarData>>(carData);

在carData行设置断点后,我可以看到FuelTankSize和CarEngineOutput具有预期的DB值 - 但是当我在PostMan中运行时,Size和EngineOutput的值为0

0 个答案:

没有答案