C# Automapper未映射不同的属性名称
我有一个名为C# Automapper未映射不同的属性名称,c#,.net,automapper,C#,.net,Automapper,我有一个名为CarDataDTO的DTO类,其两个属性的名称如下: public decimal FuelTankSize { get; set; } public decimal CarEngineOutput { get; set; } var carData = _myService.GetAllCarData().ToList(); //error checking etc removed for brevity return Mapper.Map<IEnumerable&l
CarDataDTO
的DTO类,其两个属性的名称如下:
public decimal FuelTankSize { get; set; }
public decimal CarEngineOutput { get; set; }
var carData = _myService.GetAllCarData().ToList();
//error checking etc removed for brevity
return Mapper.Map<IEnumerable<CarDataDTO>, IEnumerable<CarData>>(carData);
我使用的是Dapper
,我可以看到返回的数据,并按照预期映射到DTO中的属性
我使用WebAPI将数据返回到UI-UI上的属性在名为CarData
public decimal Size { get; set; }
public decimal EngineOutput { get; set; }
因此,我尝试使用Automapper来映射这些属性,如下所示-我有一个Automapper配置类,带有一个初始化方法,该方法在全局.asax.cs中的应用程序\u Start
中调用
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();
config.CreateMap()
.ForMember(dest=>dest.FuelTankSize,opt=>opt.MapFrom(src=>src.Size))
.ForMember(dest=>dest.CarEngineOutput,opt=>opt.MapFrom(src=>src.EngineOutput))
.ReverseMap();
然后,我从DB获取WebAPI方法中的then数据,它是一个数据列表,并按如下方式返回:
public decimal FuelTankSize { get; set; }
public decimal CarEngineOutput { get; set; }
var carData = _myService.GetAllCarData().ToList();
//error checking etc removed for brevity
return Mapper.Map<IEnumerable<CarDataDTO>, IEnumerable<CarData>>(carData);
var carData=\u myService.GetAllCarData().ToList();
//为简洁起见,删除了错误检查等
返回Mapper.Map(carData);
通过在carData行上设置断点,我可以看到FuelTankSize和CarEngineOutput具有来自DB的值,正如预期的那样-但是当我在PostMan中运行时,Size和EngineeOutput的值是0
您需要在Initialize
方法中指定映射,当您希望以这种方式映射时,则需要反过来指定映射。是否使用ReverseMap不会这样做吗?类似的问题:@Mt.Schneiders-干杯-从未发现进行搜索-我会给出答案,一个go-看起来ReverseMap只适用于简单的情况