2

多数のフィールドが含まれるベースモデルであるモデルがあります。次に、そのモデルの一部である4つのDTOがあります。最終的にすべてをモデルにマップしたいのですが、マップするたびに前のマッピングが上書きされます。

例えば

_model = new GenericModel();
_model.ExampleNotInDTO = "This Gets Overwritten being set previously";

//First Mapping below overwrites the property I set above and 
// sets only the fields in the business dto.
Mapper.CreateMap<BusinessDto, GenericModel>();
_model = Mapper.Map<BusinessDto, GenericModel>(searchResultsQuery.BusinessDto);

//Now doing another mapping just below it nulls out all the previous 
// stuff and only fills in the events dto.
Mapper.CreateMap<EventsDto, GenericModel>();
_model = Mapper.Map<EventsDto, GenericModel>(searchResultsQuery.EventsDto);

4つすべてのdto(たとえば上記の2つだけ)を同じ_modelオブジェクトに入れるための最良の方法はどのようになりますか?

4

1 に答える 1

4

そのように呼び出すたびに、AutoMapperに新しいオブジェクトを作成するように要求していますMap。オブジェクトを手動で作成し、使用して必要な操作Map<TSource, TDestination>(TSource source, TDestination destination)を行うことができます。例えば:

Mapper.Map<BusinessDto, GenericModel>(searchResultsQuery.BusinessDto, _model);

また

Mapper.Map(searchResultsQuery.BusinessDto, _model);
于 2012-10-26T17:32:56.993 に答える