Я застрял с настройкой следующего отношения многие ко многим в automapper с automapper.collection.Существующие объекты отображаются правильно, но новые DTO не добавляются в PersonXUnionList.Я использую те же классы для DTO, что и для сущностей.
Вот базовая структура:
public class Union
{
public int Id { get; set; }
public List<PersonXUnion> PersonXUnionList { get; set; } = new List<PersonXUnion>();
}
public class PersonXUnion
{
public int Id { get; set; }
public int PersonId { get; set; }
public Person Person { get; set; }
public int UnionId { get; set; }
public Union Union { get; set; }
}
public class Person
{
public int Id { get; set; }
public List<PersonXUnion> PersonXUnionList { get; set; } = new List<PersonXUnion>();
}
А вот часть конфигурации автоматического устройства, касающаяся этого отношения:
var config = new MapperConfiguration(cfg =>
{
cfg.AddCollectionMappers();
cfg.CreateMap<Union, Union>()
.EqualityComparison((odto, o) => odto.Id == o.Id)
.ForMember(d => d.PersonXUnionList, o => o.MapFrom(s => s.PersonXUnionList))
;
cfg.CreateMap<PersonXUnion, PersonXUnion>()
.EqualityComparison((odto, o) => odto.Id == o.Id)
.ForMember(dest => dest.Person,
m => m.MapFrom(clientJsonObj =>
_context.Person.FirstOrDefault(
contextDb => contextDb.Id == clientJsonObj.Person.Id)))
.ForMember(d => d.Union, o => o.MapFrom(s => s.Union))
;
cfg.CreateMap<Person, Person>()
.EqualityComparison((odto, o) => odto.Id == o.Id)
;
}
Большое спасибо за любые советы!