【发布时间】:2016-01-18 22:32:48
【问题描述】:
我开始使用 AutoMapper 并有一个问题。我遇到了这样的示例代码:
Automapper.Mapper.CreateMap<Book, BookViewModel>()
.ForMember(dest => dest.Author,
opts => opts.MapFrom(src => src.Author.Name));
所以这可以让我将一本书转换为书籍模型,然后将 src 映射到 src.author.name 属性,因为没有 1-1 映射。
为了确认,它确实不自己反向工作,这意味着我现在需要明确地这样做:
Mapper.Mapper.CreateMap<BookViewModel, Book>()
.ForMember(dest => dest.Author.Name,
opts => opts.MapFrom(src => src.Author));
正确吗?因此,为了进一步确认,如果我有 50 个视图模型和视图,我实际上需要 100 个(一个用于输入,一个用于输出,加上 .ForMember 表达式中的任何其他代码行)
这是真的吗?这是一种常见的做法吗(即您可能会看到数百行代码来处理多个 DTO 的字段映射,这些 DTO 的属性不匹配 1-1)?
【问题讨论】:
-
从6.1.0开始,AutoMapper支持更丰富的reverse mapping support。
标签: c# automapper