我有一个名为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