现在有2个实体(A、B),2个实体中的部分字段是相同的,现在把A实体获取的值赋值给B实体,利用AutoMapper实体映射可以轻松解决

参考

实体中不同名称之间的映射可以这样写

Mapper.Initialize(x =>
x.CreateMap<WorldA, WorldB>()
.ForMember(d => d.AGE, opt => {
opt.MapFrom(s => s.name);
})
);

注意:字段名称相同的类型一定也要相同不然会报错的

AutoMapper.3.2.1\lib\net40

//第一步初始化
Mapper.Initialize(cfg =>
{
cfg.CreateMap<WorldA, WorldB>();
});
List<WorldA> worldAs = new List<WorldA>()
{
new WorldA() { id = , wewe = "测试1",name="98k" },
new WorldA() { id = , wewe = "测试2",name="98k" },
new WorldA() { id = , wewe = "测试3",name="98k" },
};
//A实体值赋给B实体
List<WorldB> b = Mapper.Map<List<WorldA>, List<WorldB>>(worldAs).ToList();
 public class WorldA
{
public int id { get; set; }
public string wewe { get; set; } public string name { get; set; }
}
public class WorldB
{
public int id { get; set; }
public string wewe { get; set; } public string AGE { get; set; }  public string money { get; set; }
}

值为null的处理

 Mapper.Initialize(x => x.AddProfile<UserProfile>());
List<WorldA> worldAs = new List<WorldA>()
{
new WorldA() { id = , wewe = "测试1",name=null },
new WorldA() { id = , wewe = "测试2",name="98k" },
new WorldA() { id = , wewe = "测试3",name="98k" },
}; //A实体值赋给B实体
List<WorldB> b = Mapper.Map<List<WorldA>, List<WorldB>>(worldAs).ToList();
public class UserProfile : Profile
{
protected override void Configure()
{
CreateMap<WorldA, WorldB>()
.ForMember(d => d.AGE, opt => opt.MapFrom(s => s.name))
.ForMember(d => d.AGE, opt => opt.NullSubstitute("值为空")
);
CreateMap<WorldA, WorldB>()
.ForMember(d => d.money, opt => opt.MapFrom(s => s.name))
.ForMember(d => d.money, opt => opt.NullSubstitute("值为空")
);
}
}

实体映射-------AutoMapper的更多相关文章

  1. 简单的C#实体映射 AutoMapper

    AutoMapper是对象到对象的映射工具.在完成映射规则之后,AutoMapper可以将源对象转换为目标对象. 要映射实体 public class SourceModel { public int ...

  2. 释怀我的诺亚尔 不用EF框架,完成完美实体映射,且便于维护!(AutoMapper,petapoco)

    释怀我的诺亚尔   不用EF框架,完成完美实体映射,且便于维护!(AutoMapper,petapoco) 最近,需要搭建一个新项目,在需求分析时确定数据库中需要创建多个存储过程.所以如果还是用原来E ...

  3. 在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射

    一.前言 在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的 List<T> 集合中,因为我们最终想要在页面上展示的数据与数据库实体类之间可能 ...

  4. ASP.NET Core Web 应用程序系列(五)- 在ASP.NET Core中使用AutoMapper进行实体映射

    本章主要简单介绍下在ASP.NET Core中如何使用AutoMapper进行实体映射.在正式进入主题之前我们来看下几个概念: 1.数据库持久化对象PO(Persistent Object):顾名思义 ...

  5. 关于AutoMApping 实体映射

    安装AutoMapping包 把订单实体映射成订单DTO实体 .ReverseMap()加上这个方法后 下面自定义 映射规则  第一个就是来源对象 第二个就是目标对象 https://www.cnbl ...

  6. ASP.NET Core扩展库之实体映射

    在分层设计模式中,各层之间的数据通常通过数据传输对象(DTO)来进行数据的传递,而大多数情况下,各层数据的定义结构大同小异,如何在这些定义结构中相互转换,之前我们通过使用AutoMapper库,但Au ...

  7. .NET Core Dto映射(AutoMapper)

    .Net Core Dto映射(AutoMapper) 我们假设一个场景, 采用EF Core+Web Api, 这时候可能会出现EF Core中的Entity Model和在项目中使用的Model之 ...

  8. 8.2 使用Fluent API进行实体映射【Code-First系列】

    现在,我们来学习怎么使用Fluent API来配置实体. 一.配置默认的数据表Schema Student实体 using System; using System.Collections.Gener ...

  9. 开源实体映射框架EmitMapper介绍

    开源实体映射框架EmitMapper介绍   综述       EmitMapper是一个开源实体映射框架,地址:http://emitmapper.codeplex.com/.       Emit ...

随机推荐

  1. 组件公用数据 Vue.observable( )

    注意(适合小项目,不用vuex的情况下使用) 1.创建store.js 最好和main.js平级创建文件 import Vue from 'vue' export const store = Vue. ...

  2. 单词「TJOI 2013」(AC自动机)

    传送门 我们正常的建好Trie后求一遍fail.之后对于每一个节点,从它的fail连向它一条单项边.然后从根节点开始dfs. 记sum[i]代表从根到i号节点所代表的的字符串出现的次数,即该点的权值. ...

  3. 使用EA画流程图

    https://www.sparxsystems.com.au/enterprise_architect_user_guide/13.0/model_domains/flow_chart.html

  4. Visual Studio C++覆盖率测试异常的解决方法

    默认的UnitTest可能出现这样的异常 经过查阅资料最终找到了解决办法 步骤如下: 在测试项目右键属性 将配置属性->链接器->调试 生成调试信息修改为如图所示,然后再进行覆盖率测试 就 ...

  5. SpringCloud实战——(4)基于Eureka、Zuul

  6. 7. 通过JDBC源码来分析线程上下文类加载器以及SPI的使用

    目录 1. 什么是全盘负责委托机制 2. 为什么需要有线程上下文类加载器 2.1 使用JDBC的例子,分析为什么双亲委托机制不能实现要求 2.2 线程上下文类加载器的作用 3. 线程上下文类加载器的使 ...

  7. 条款01:视C++为一个语言联邦

    C++由四部分组成: 1)C. 2)Object-Oriented C++.classes,封装,多态,动态绑定(virtual函数) 3)Template C++.泛型编程. 4)STL. 对于内置 ...

  8. 修改Centos7的yum源

    以下为修改Centos7的yum源: 1. 备份原镜像文件,便于后期恢复 [root@keepmydream ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc ...

  9. QQ企业通----类库的设计----UDPSocket组件等

    知识点: IPEndPoint    将网络端点表示为 IP 地址和端口号. UdpClient   提供用户数据报 (UDP) 网络服务. UdpClient对象.Close 关闭 UDP 连接. ...

  10. ffmpeg 学习:002-代码架构

    前言 使用 ffmpeg 库时,最好先理解好ffmpeg的代码结构图. 下面这张图表明了FFmpeg在解码一个视频的时候的函数调用流程,为了保证结构清晰,其中仅列出了最关键的函数,剔除了其它不是特别重 ...