AutoMapper多个对象映射到一个Dto对象

一、定义源映射对象

为了体现AutoMapper映射特性,在SocialAttribute中的Name属性没有定义在People中,People的Ear属性也不存在与SocialAttribute和PhysicalAttribute中。

代码如下:

二、注入AutoMapper

例子中使用的IOC容器是Autofac,不使用Autofac的话,仅用NetCore框架集成的IOC容器也可以实现。

注册AutoMapper必要组件:

三、配置映射

ForMember:映射两个类之间的属性关系。

People类中的Ear属性并不存在于任何映射源类中,我们可以使用ForMember(m => m.Ear, n => n.Ignore())忽略该属性,当然也可以不写这段代码,对AutoMapper不会有任何影响,但是为了后期维护更方便,我比较习惯将Dto类的属性写全。

SocialAttribute类中的Name属性不存在与People类中,直接忽略它,Name也不会被AutoMapper赋值。

四、调用AutoMapper完成赋值

调用AutoMapper,将PhysicalAttribute和SocialAttribute的值赋给PeopleDto

五、运行测试

测试框架使用的xUnit

通过测试!

参考项目:https://github.com/FB208/CodeSpace/tree/master/CodeSpace.CSharp/WebMvc/DemoClass/AutoMapperDemo

原文链接:https://www.cnblogs.com/fb208/p/11548250.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com