簡體   English   中英

使用自動映射器將數據庫實體映射到DTO

[英]Mapping Database Entity to DTO Using Automapper

我正在使用AutoMapper。 我遇到有關將我的DTO映射到數據庫實體的問題。 我想通過使用AutoMapper將更新的DTO映射到數據庫實體來更新數據庫中的現有數據,而不是手動將DTO映射到數據庫實體。

首先定義與實體相關的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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM