AutoMapper - IncludeBase,解析器覆盖映射
AutoMapper - IncludeBase, resolvers overrides mapping
我运行遇到映射继承问题。我无法使用 MapFrom 重新映射通过解析器映射到基础映射中的 属性。当我映射 时,我想获得值 属性 的脉冲。如果我在底图中使用解析器,我仍然会在值中获得 Spo2,而不是 Pulse。但是如果我在底图中使用一个简单的 MapFrom,我会得到 Pulse:
cfg.CreateMap<ReadingModel, HistoryCreateModel>()
.ForMember(dest => dest.Value, _ => _.MapFrom<HealthMeasurementValueResolver>()) // i get spo2 in the inherited mapping
//.ForMember(dest => dest.Value, _ => _.MapFrom(src => (float) src.Spo2)) // i get pulse in the inherited mapping
.ForAllOtherMembers(_ => _.Ignore());
cfg.CreateMap<ReadingModel, HealthDataHistoryPulseCreateModel>()
.IncludeBase<ReadingModel, HistoryCreateModel>()
.ForMember(dest => dest.Value, _ => _.MapFrom(src => (float) src.Pulse));
如何在基础地图中使用解析器并在继承地图中获取脉冲?
这是一个代码示例:dotnetfiddle link
升级。否则,您也必须在派生映射中使用解析器。期望没有人会编写该代码 :) 所以这只是实现的意外。这个想法是让派生地图覆盖基础地图,这就是在这种情况下 AM 11 中发生的事情。
我运行遇到映射继承问题。我无法使用 MapFrom 重新映射通过解析器映射到基础映射中的 属性。当我映射
cfg.CreateMap<ReadingModel, HistoryCreateModel>()
.ForMember(dest => dest.Value, _ => _.MapFrom<HealthMeasurementValueResolver>()) // i get spo2 in the inherited mapping
//.ForMember(dest => dest.Value, _ => _.MapFrom(src => (float) src.Spo2)) // i get pulse in the inherited mapping
.ForAllOtherMembers(_ => _.Ignore());
cfg.CreateMap<ReadingModel, HealthDataHistoryPulseCreateModel>()
.IncludeBase<ReadingModel, HistoryCreateModel>()
.ForMember(dest => dest.Value, _ => _.MapFrom(src => (float) src.Pulse));
如何在基础地图中使用解析器并在继承地图中获取脉冲?
这是一个代码示例:dotnetfiddle link
升级。否则,您也必须在派生映射中使用解析器。期望没有人会编写该代码 :) 所以这只是实现的意外。这个想法是让派生地图覆盖基础地图,这就是在这种情况下 AM 11 中发生的事情。