1. ホーム
  2. c#

[解決済み] Automapper - マルチオブジェクトのソースとデスティネーション

2023-07-07 13:07:49

質問

複数のオブジェクトをマッピングするためにオートマッパーを使用しています(DBクラスとUIオブジェクトのマッピング)。

1をマップします。

Mapper.CreateMap<sourceone, destination>().ForMember(sss => sss.one, m => m.MapFrom(source => source.abc));

地図2

Mapper.CreateMap<sourcetwo, destination>().ForMember(sss => sss.two, m => m.MapFrom(source => source.xyz));

destination d = new destination();

//マップ1

d = AutoMapper.Mapper.Map<sourceone, destination>(sourceone);

//地図2

d = AutoMapper.Mapper.Map<sourcetwo, destination>(sourcetwo);

Map 2を呼び出すと、Map 1で設定した値が消えてしまうのですが...。(例: destination.one が空になる)。どのようにこれを修正すればよいのでしょうか?

どのように解決するのですか?

Map には、ソースとデスティネーションオブジェクトを受け取るオーバーロードがあります。

d = AutoMapper.Mapper.Map<sourceone, destination>(sourceone);

/* Pass the created destination to the second map call: */
AutoMapper.Mapper.Map<sourcetwo, destination>(sourcetwo, d);