2015-09-14 1 views
0

Il pourrait être question fondamentale, mais je suis resté fidèle à ceAutoMapper crée Dupliquer l'enregistrement dans DB

J'ai une structure entité comme celui-ci ci-dessous

public class OrderTagGroup : Entity 
{ 
    public virtual string Name { get; set; } 
    public virtual List<OrderTag> OrderTags { get; set; } 
} 

public class OrderTag : Entity 
{ 
    public virtual string Name { get; set; } 
    public virtual int? OrderTagGroupId { get; set; } 
} 

et son DTO respectif est

public class OrderTagGroupDto : EntityDto 
{ 
    [Required] 
    public string Name { get; set; } 


    public List<OrderTagDto> OrderTags { get; set; } 
} 

public class OrderTagDto : EntityDto 
{ 
    [Required] 
    public string Name { get; set; } 


    public int? OrderTagGroupId { get; set; } 
} 

J'ai ajouté le mappage automatique ainsi que cette

Mapper.CreateMap<OrderTagGroup, OrderTagGroupDto>(); 
Mapper.CreateMap<OrderTagGroupDto, OrderTagGroup>(); 

Mapper.CreateMap<OrderTag, OrderTagDto>(); 
Mapper.CreateMap<OrderTagDto, OrderTag>(); 

Voici ma mise à jour du référentiel

public void UpdateOrderTagGroup(OrderTagGroupDto OrderTagGroup) 
    { 
     var group = _OrderTagGroupRepo.Get(OrderTagGroup.Id); 
     if (group != null && group.Id > 0) 
     { 
      Mapper.Map<OrderTagGroupDto, OrderTagGroup>(OrderTagGroup,group); 

     } 
    } 

Ma question est, chaque fois que mon OrderTagGroupDTO va pour la mise à jour, il crée une nouvelle ligne dans la base de données et à l'entrée précédente n'est pas supprimé.

Pourriez-vous s'il vous plaît me aider où je me trompe?

Répondre

-3

Automapper est pour Entité-> DTO .. ​​

Ne JAMAIS utiliser automapper ou similaire pour DTO-> entité il n'est pas conçu pour que

Pour DTO-> entité que vous devez « toujours » le faire manuellement » '