【问题标题】:AutoMapper is Creating Duplicate Record in DBAutoMapper 在数据库中创建重复记录
【发布时间】:2015-09-14 11:18:35
【问题描述】:

这可能是一个非常基本的问题,但我一直坚持

我有一个像下面这样的实体结构

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

其各自的DTO是

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

我也像这样添加了自动映射

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

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

这是我的存储库更新

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

        }
    }

我的问题是,每当我的 OrderTagGroupDTO 进行更新时,它都会在数据库中创建一个新行,并且不会删除以前的条目。

你能帮我看看哪里错了吗?

【问题讨论】:

    标签: entity-framework automapper poco


    【解决方案1】:

    Automapper 用于实体->DTO ..

    永远不要对 DTO 使用自动映射器或类似的东西->它不是为它设计的实体

    对于 DTO->实体,您应该“始终”“手动”进行操作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-07
      相关资源
      最近更新 更多