Mapowanie DTO do jednostki za pomocą Automapper

Mam POCO Entity Framework o następującej strukturze.

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

Stworzyłem obiekt transferu danych, aby ten obiekt mógł być używany przez moje widoki.

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

Teraz mam następujący kod odwzorowania w moim pliku Global.asax.

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

Wszystko działa dobrze, przekazuję DTO do moich widoków OK i mogę utworzyć nową instancjęEntity od mojegoEntityDto Model. Problem pojawia się, gdy próbuję edytować mójEntity; Zdaję sobie sprawę z tego, że to AutoMapper traci klucz Entity, który tworzy EF, aby śledzić zmiany w obiekcie, ale po przejrzeniu kilku źródeł nie wydaje się, aby istniało ostateczne rozwiązanie. Oto działanie, którego używam do edycji mojego obiektu.

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);
}

Co mam teraz zrobić, aby to rozwiązać? Czy mogę:

Jakoś powiedz AutoMapperowi.Ignore() właściwości klucza encji?Uzyskaj AutoMapper, aby skopiować właściwości klucza jednostki?.Attach() mój mapowanyEntity i ustawić stan na zmodyfikowany?

Każda pomoc zawsze doceniana.

questionAnswers(3)

yourAnswerToTheQuestion