Остановите создание Automapper пустых объектов на виртуальных свойствах при отображении из DTO в Entity - PullRequest
0 голосов
/ 26 марта 2019

Я настроил свою конфигурацию 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, чтобы оставить эти свойства пустыми?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...