Nen*_*nad 2 automapper automapper-8
Automapper版本8.0.0从ResolveUsing扩展方法中删除了扩展方法,IMappingExpression并将其与MapFrom扩展方法合并。但是,ResolveUsing用MapFrom方法替换后,某些配置会引发异常。
原件ResolveUsing:
CreateMap<SourceType, DestinationType>()
.ForMember(dest => dest.Customer,
opt => opt.ResolveUsing(src => src?.Customer ?? new Customer())
);
Run Code Online (Sandbox Code Playgroud)
替换为MapFrom:
CreateMap<SourceType, DestinationType>()
.ForMember(dest => dest.Customer,
opt => opt.MapFrom(src => src?.Customer ?? new Customer())
);
Run Code Online (Sandbox Code Playgroud)
产生编译错误:
错误CS8072
自动映射器
表达式树lambda不得包含空传播运算符。
Func与旧的/移除的ResolveUsing重载相比,Automapper 8.0.0中基于新的重载可以接受更多参数。
opt.MapFrom(src => ...)替换时ResolveUsing,不要使用带有单个输入参数的lambda表达式,而应使用带有2个参数的重载opt.MapFrom((src, dest) => ...)。
MapFrom 表达式变为:
opt => opt.MapFrom((src, dest) => src?.Customer ?? new Customer())
Run Code Online (Sandbox Code Playgroud)
完整示例:
CreateMap<SourceType, DestinationType>()
.ForMember(dest => dest.Customer,
opt => opt.MapFrom((src, dest) => src?.Customer ?? new Customer())
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
801 次 |
| 最近记录: |