web-dev-qa-db-ja.com

Automapper ResolveUsingまたはMapFrom

次のように定義されたマッピング定義があります

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

ResolveUsingまたはMapFrom(src => SomePrivateMethod())を使用する必要がありますか?

複雑なマッピングに関して、ResolveUsingとMapFromの違いは何ですか?.

リゾルバーまたはプライベートメソッドはデータベースにアクセスして値を取得します。

25
Angad

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クラスを使用します。それ以外の場合、プライベートメソッドで十分です。

35
Jimmy Bogard