【问题标题】:Mapping Database Entity to DTO Using Automapper使用 Automapper 将数据库实体映射到 DTO
【发布时间】:2014-10-21 12:32:54
【问题描述】:

我正在使用 AutoMapper。我面临一个关于将我的 DTO 映射到数据库实体的问题。我想通过使用 AutoMapper 将更新的 DTO 映射到 DB 实体来更新数据库中的现有数据,而不是手动将 DTO 映射到 DB 实体。

【问题讨论】:

  • 我访问过这个链接,但这对我没有帮助......lostechies.com/jimmybogard/2009/09/18/…
  • 你的代码在哪里?你试过什么?
  • 安德鲁·惠特克....我正在尝试这样做
  • List = DBEntity List = SomeData ServicePlanDetailsToUpdate = Mapper.DynamicMap>(ServicePlanDetals);

标签: c# mapping automapper dto


【解决方案1】:

首先定义与实体相关的 DTO。例如

public class Author {
    public string Name { get; set; }
}

public class Book {
    public string Title { get; set; }
    public Author Author { get; set; }
}

public class BookDTO {
    public string Title { get; set; }
    public string Author { get; set; }
}

然后在您的应用程序启动代码中的某处初始化您的 Automap:

AutoMapper.Mapper.CreateMap<Book, BookDTO>()
    .ForMember(dest => dest.Author,
           opts => opts.MapFrom(src => src.Author.Name));

AutoMapper.Mapper.CreateMap<Book, BookDTO>().ReverseMap()

现在和从 DTO 到实体的更新方法示例:

    public int Update(BookDTO dto) {
        var entity = _context.Books.FindAsync(dto.id);
        if (entity == null) throw new ItemNotFoundException(dto.id);
        AutoMapper.Mapper.Map(dto, entity)
        return _context.SaveChanges();
    }

还有另一个插入示例:

    public int Insert(BookDTO dto) {
        var entity = AutoMapper.Mapper.Map<Book>(dto);
        _context.Provinces.Add(entity);
        return _context.SaveChanges();
    }

更多信息http://cpratt.co/using-automapper-getting-started/

【讨论】:

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