web-dev-qa-db-fra.com

Automapper ResolveUsing ou MapFrom

J'ai une définition de mappage définie comme

Mapper.CreateMap<Calculator, CalculatorViewModel>()
  .ForMember(dest => dest.TypeIndicator, src => src.ResolveUsing(new TypeIndicatorResolver()));

Dois-je utiliser ResolveUsing ou MapFrom(src => SomePrivateMethod())?

Quelle est la différence entre ResolveUsing et MapFrom en ce qui concerne le mappage complexe.

La méthode Resolver ou Private ira dans la base de données et obtiendra une valeur.

25
Angad

MapFrom utilise des expressions, tandis que ResolveUsing utilise un Func. MapFrom autorise uniquement la redirection des propriétés:

ForMember(d => d.Foo, opt => opt.MapFrom(src => src.Bar.Baz.Foo))

ResolveUsing peut être n'importe quoi

ForMember(d => d.Foo, opt => opt.ResolveUsing(src => HitDatabaseWithStuff(src));

J'utiliserais une classe Resolver lorsque la logique de résolution doit être partagée entre plusieurs membres, ou si je veux que le résolveur soit instancié par un localisateur de service. Sinon, une méthode privée est très bien.

35
Jimmy Bogard