У меня возникла следующая проблема:
Я получил сущность (из EF Code First), которая выглядит следующим образом.
public class Movie {
public ICollection<AudioQuality> AudioQualities {get;set;}
}
public class AudioQuality {
public Guid Id{get;set;}
public int Channels{get;set;}
}
//Automapper Init:
Mapper.CreateMap<Movie, MovieDto>();
Mapper.CreateMap<MovieDto, Movie>().ForMember(dest => dest.AudioQualities,opt => opt.UseDestinationValue());
Mapper.CreateMap<VideoQuality, VideoQualityDto>();
Mapper.CreateMap<AudioQuality, AudioQaulityDto>();
Mapper.CreateMap<VideoQualityDto, VideoQuality>();
Mapper.CreateMap<AudioQaulityDto, AudioQuality>()
.ForMember(dest => dest.Movies, opt => opt.Ignore());
И у меня также есть DTO, похожее на!
Я сопоставляю DTO с сущностью так:
//Get Movie from DB and than update it with the dto values
Movie movieFromDb = GetMoviesWithAllChilds().Single(mov => mov.Id == movieDto.Id);
//use update the entity from db with dto
Mapper.Map(movieDto, movieFromDb);
Теперь проблема в том, что Automapper создает новый AudioQuality-объект для каждого элемента в AudioQualities.
Но я хочу, чтобы он просто копировал значения из AudioQuality-Objects из DTO в Entities вместо создания новых объектов со значениями из DTO.
Есть ли способ сделать это ??
К вашему сведению: UseDestinationValue работает с коллекцией (поэтому коллекция не копируется).
br rene_r