что одно поле я не могу смаппить оно меняется и из вне указывается.
cfg.CreateMap<CustomerInfo, Contact>()
.ForMember(dest => dest.Email, opt => opt.MapFrom(src => src.Email))
.ForMember(dest => dest.PhoneNumber, opt => opt.MapFrom(src => src.Phone.TryGetPhoneNumber()))
.ForMember(dest => dest.CountryCode, opt => opt.MapFrom(src => src.Phone.TryGetCountryCode()))
.ForMember(dest => dest.ContactName, opt => opt.MapFrom(src => src.GetConcatenationName()))
.ForMember(dest => dest.ContactOrigin, opt => opt.MapFrom(src => ContactOrigin.Imitation.ToString()))
.ForMember(dest => dest.CreatedAt, opt => opt.MapFrom(src => DateTime.UtcNow));
В dest есть поле UserId, не хочется потом форичем проходить по элементам и вставлять userId
смысл автомапера меняется
если контакт сделать record ом, то можно так _mapper.Map<IReadOnlyCollection<Contact>>().Select(x => x with { UserId = userId }).ToList(); только в маппинге надо будет заигнорить юзерайди
а ну и да, для рекордов маппинг нужно будет через параметры контруктора описывать
Рекорды могут идти и без конструктора
Обсуждают сегодня