Сопоставление DTO с сущностью с помощью Automapper

У меня есть Entity Framework POCO со следующей структурой.

public class Entity
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
}

Я создал объект передачи данных для этого объекта, который будет использоваться моими представлениями.

public class EntityDto
{
    public int Id { get; set; }
    public string Name { get; set; }
}

Теперь у меня есть следующий код сопоставления в моем файле Global.asax.

Mapper.CreateMap<Entity, EntityDto>();
Mapper.CreateMap<EntityDto, Entity>(); // not sure whether I need this as well?

Все работает нормально, я передаю DTO своим представлениям, и я могу создать новый экземплярEntity от моегоEntityDto модель. Проблема возникает, когда я пытаюсь отредактироватьEntity; Я знаю, что это происходит из-за того, что AutoMapper теряет Entity Key, который EF создает для отслеживания изменений в объекте, но, прочитав несколько источников, не представляется окончательным решением. Вот действие, которое я использую для редактирования моей сущности.

public ActionResult EditEntity(EntityDto model)
{
    var entity = context.Entities.Single(e => e.Id == model.Id);
    entity = Mapper.Map<EntityDto, Entity>(model); // this loses the Entity Key stuff
    context.SaveChanges();

    return View(model);
}

Теперь, что мне сделать, чтобы решить это? Могу я:

Как-то сказать AutoMapper, чтобы.Ignore() свойства Entity Key?Получить AutoMapper, чтобы скопировать свойства Entity Key?.Attach() мой картированныйEntity и установить состояние на изменение?

Любая помощь всегда ценится.

Ответы на вопрос(3)

Ваш ответ на вопрос