Я настроил свою конфигурацию Automapper, и это нормально при отображении сущностей на Dtos. Однако, когда я пытаюсь отобразить Dto обратно на Entity, он заполняет все виртуальные свойства Entity пустыми данными, вызывая создание новых объектов.
Psuedocode, который должен продемонстрировать проблему:
public class MyEntity
{
public string MyString { get; set; }
public virtual MyOtherEntity MyOtherEntity
}
public class MyEntityDto
{
public string MyString { get; set; }
public virtual MyOtherEntityDto MyOtherEntity
}
config.CreateMap<MyEntity, MyEntityDto>()
.ForSourceMember(obs => obs.MyOtherEntity, dto => dto.DoNotValidate())
.ReverseMap();
// using this to create an Entity creates an empty MyOtherEntity object on it
var entity = Mapper.Map<MyEntityDto, MyEntity>(myEntityDto);
_context.MyEntities.Add(entity);
// so this tries to create a new MyOtherEntity in the db
_context.SaveChanges();
Я могу обойти это, создав сущность вручную, но разве нет способа настроить Automapper, чтобы оставить эти свойства пустыми?