我将映射定义定义为
Mapper.CreateMap<Calculator, CalculatorViewModel>()
.ForMember(dest => dest.TypeIndicator, src => src.ResolveUsing(new TypeIndicatorResolver()));
我应该使用 ResolveUsing 还是MapFrom(src => SomePrivateMethod())
?
ResolveUsing和MapFrom在复杂映射方面有什么区别。
Resolver或Private方法将转到数据库并获取值。
答案 0 :(得分:31)
MapFrom使用表达式,而ResolveUsing使用Func。 MapFrom只允许重定向属性:
ForMember(d => d.Foo, opt => opt.MapFrom(src => src.Bar.Baz.Foo))
ResolveUsing可以是任何东西
ForMember(d => d.Foo, opt => opt.ResolveUsing(src => HitDatabaseWithStuff(src));
当需要在多个成员之间共享解析逻辑时,或者如果我想让服务定位器实例化解析器时,我会使用Resolver类。否则,私有方法就可以了。