.NET之AutoMapper对象映射工具运用
AutoMapper对象映射工具:主要是将某一个实体转成另一个实体。
1.引用NuGet包;搜索:AutoMapper
2.创建实体类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace AutoMapper
{
public static class AutoMapperExtension
{
/// <summary>
/// 单个对象映射
/// </summary>
/// <typeparam name="TSource">源对象</typeparam>
/// <typeparam name="TDestination">目标对象</typeparam>
/// <param name="source"></param>
/// <returns></returns>
public static TDestination MapTo<TSource, TDestination>(TSource source)
{
if (source == null) return default(TDestination);
Mapper.Initialize(x => x.CreateMap(typeof(TSource), typeof(TDestination)));
return Mapper.Map<TDestination>(source);
} /// <summary>
/// 集合列表类型映射
/// </summary>
/// <typeparam name="TSource">源对象</typeparam>
/// <typeparam name="TDestination">目标对象</typeparam>
/// <param name="source"></param>
/// <returns></returns>
public static List<TDestination> MapToList<TSource, TDestination>(this IEnumerable<TSource> source)
{
if (source == null) return default(List<TDestination>);
Mapper.Initialize(x => x.CreateMap(typeof(TSource), typeof(TDestination)));
return Mapper.Map<List<TDestination>>(source);
}
}
}
3.作为例子。建立两个实体对象
(老会员实体)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace AutoMapper
{
public class UserModel
{
/// <summary>
/// 会员编号
/// </summary>
public Int32 UserId { get; set; } /// <summary>
/// 会员名称
/// </summary>
public String Name { get; set; }
}
}
新会员实体
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace AutoMapper
{
/// <summary>
/// 新会员表
/// </summary>
public class UserNewModel
{
/// <summary>
/// 会员编号
/// </summary>
public Int32 UserId { get; set; } /// <summary>
/// 会员名称
/// </summary>
public String Name { get; set; }
}
}
4.使用方法。在项目过程中。如果需要将两个实体进行转化。使用实例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace AutoMapper
{
public class Extension
{
/// <summary>
/// 将user转成userNew
/// </summary>
public static void Model()
{
var user = new UserModel()
{
UserId = ,
Name = "王彬"
};
var userNew = new UserNewModel();
//将老会员实体转成新会员实体
var u = AutoMapperExtension.MapTo<UserModel,UserNewModel>(user); } public static void ModelList()
{
List<UserModel> Users = new List<UserModel>(); var user = new UserModel()
{
UserId = ,
Name = "王彬"
}; Users.Add(user); var userNew = new List<UserNewModel>();
//将老会员实体转成新会员实体
var ulist = AutoMapperExtension.MapToList<UserModel, UserNewModel>(Users);
}
}
}
.NET之AutoMapper对象映射工具运用的更多相关文章
- EF架构~AutoMapper对象映射工具简化了实体赋值的过程
回到目录 AutoMapper是一个.NET的对象映射工具,一般地,我们进行面向服务的开发时,都会涉及到DTO的概念,即数据传输对象,而为了减少系统的负载,一般我们不会把整个表的字段作为传输的数据,而 ...
- .NET的对象映射工具AutoMapper使用笔记
AutoMapper是一个.NET的对象映射工具. 项目地址:https://github.com/AutoMapper/AutoMapper. 帮助文档:https://github.com/Aut ...
- 对象映射工具AutoMapper介绍
AutoMapper是用来解决对象之间映射转换的类库.对于我们开发人员来说,写对象之间互相转换的代码是一件极其浪费生命的事情,AutoMapper能够帮助我们节省不少时间. 一. AutoMapper ...
- .NetCore学习笔记:四、AutoMapper对象映射
什么是AutoMapper?AutoMapper是一个简单的小型库,用于解决一个看似复杂的问题 - 摆脱将一个对象映射到另一个对象的代码.这种类型的代码是相当沉闷和无聊的写,所以为什么不发明一个工具来 ...
- 【转】AutoMapper对象映射
什么是AutoMapper?AutoMapper是一个简单的小型库,用于解决一个看似复杂的问题 - 摆脱将一个对象映射到另一个对象的代码.这种类型的代码是相当沉闷和无聊的写,所以为什么不发明一个工具来 ...
- AutoMapper 自动映射工具
先引用对应的DLL. 11.转换匿名对象 结合LINQ映射新的实体类. using System;using System.Collections.Generic;using System.Linq; ...
- .NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper
好久没有写文章,工作甚忙,但每日还是关注.NET领域的开源项目.五一休息,放松了一下之后,今天就给大家介绍一个轻量级的对象映射工具Tiny Mapper:号称是.NET平台最快的对象映射组件.那就一起 ...
- Tiny Mapper是一个.net平台开源的对象映射组件
NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper 阅读目录 1.Tiny Mapper基本介绍 2.Tiny Mapper 基本使用 3.Tiny Mapper 指定配置使用 ...
- 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十三 || DTOs 对象映射使用,项目部署Windows+Linux完整版
更新 很多小伙伴在用 IIS 发布的时候,总是会有一些问题,文章下边 #autoid-6-0-0 我也简单的动图展示了,如何 publish 到 IIS 的过程,如果你能看懂,却发现自己的项目有问题的 ...
随机推荐
- [查阅]Dalvik opcodes
Dalvik opcodes Dalvik opcodes Author: Gabor Paller Vx values in the table denote a Dalvik register. ...
- Oracle E-Business Suite Maintenance Guide Release 12.2(Patching Utilities)
更多内容参考: http://docs.oracle.com/cd/E51111_01/current/acrobat/122ebsmt.zip Oracle Patch Application As ...
- 【Python】模拟radius coa报文
Radius协议中网关设备NAS是client,实现radius协议的服务为服务端(例如freeradius),这种情况下radius server并不能主动给NAS发送信息.在 rfc3576 Dy ...
- Android群英传笔记——第四章:ListView使用技巧
Android群英传笔记--第四章:ListView使用技巧 最近也是比较迷茫,但是有一点点还是要坚持的,就是学习了,最近离职了,今天也是继续温习第四章ListView,也拖了其实也挺久的了,list ...
- RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)
===================================================== RTMPdump(libRTMP) 源代码分析系列文章: RTMPdump 源代码分析 1: ...
- RTMPdump(libRTMP) 源代码分析 6: 建立一个流媒体连接 (NetStream部分 1)
===================================================== RTMPdump(libRTMP) 源代码分析系列文章: RTMPdump 源代码分析 1: ...
- ruby如何查找一个方法属于哪个类
这是一个看似简单,实际不那么直接的问题.一种方法是先直接看当前对象的类是神马东东: puts self.class 或者 self.class.name 不过在某些情况下上述代码返回不了具体的名称,前 ...
- Apache Kafka简介与安装(二)
Kafka在Windows环境上安装与运行 简介 Apache kafka 是一个分布式的基于push-subscribe的消息系统,它具备快速.可扩展.可持久化的特点.它现在是Apache旗下的一个 ...
- asp.net 分布式探讨之Session共享问题
---恢复内容开始--- Session共享是分布式架构设计中的一大难点,尽管session共享的解决方案不少,但是.net 下的解决方案还是比较少,而且说明文档也很少. 之前尝试用memcached ...
- 03_Linux FTP
linux搭建ftp server,在windows向上传 http://www.2cto.com/os/201204/126898.html yum install vsftp.rpm 安装v ...