.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 = 1,
                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 = 1,
                Name = "王彬"
            };

            Users.Add(user);

            var userNew = new List<UserNewModel>();
            //将老会员实体转成新会员实体
            var ulist = AutoMapperExtension.MapToList<UserModel, UserNewModel>(Users);
        }
    }
}
时间: 2024-10-01 03:11:39

.NET之AutoMapper对象映射工具运用的相关文章

对象映射工具AutoMapper介绍

AutoMapper是用来解决对象之间映射转换的类库.对于我们开发人员来说,写对象之间互相转换的代码是一件极其浪费生命的事情,AutoMapper能够帮助我们节省不少时间. 一. AutoMapper解决了什么问题? 要问AutoMapper解决了什么问题? 难道不是对象映射转换的问题吗? 当然是,不过我们可以问深入一些,为什么项目中会出现大量的对象映射转换?(以下对于非MVC项目也适用) 在现代的软件开发中,项目的层级更加的细分,而不同层级之间对于对象的需求是有区别的,这就需要在不同层级间传递

AutoMapper对象映射

简单示例 FileModel model = new FileModel(); FileEntity file = Mapper.DynamicMap<FileEntity>(model); AutoMapper是基于对象到对象约定的映射工具,常用于(但并不仅限制于)把复杂的对象模型转为DTO,一般用于ViewModel模式和跨 服务范畴. AutoMapper给用户提供了便捷的配置API,就像使用约定来完成自动映射那样. AutoMapper包含以下功能: 平展投影配置验证列表和数组嵌套映射

AutoMapper 自动映射工具

11.转换匿名对象 结合LINQ映射新的实体类. using System;using System.Collections.Generic;using System.Linq;using System.Text;using AutoMapper;using System.Data; namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {       

Tiny Mapper是一个.net平台开源的对象映射组件

NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper 阅读目录 1.Tiny Mapper基本介绍 2.Tiny Mapper 基本使用 3.Tiny Mapper 指定配置使用 4.Tiny Mapper复杂类型使用 5.资源 好久没有写文章,工作甚忙,但每日还是关注.NET领域的开源项目.五一休息,放松了一下之后,今天就给大家介绍一个轻量级的对象映射工具Tiny Mapper:号称是.NET平台最快的对象映射组件.那就一起看看呢. .NET开源目录:[目录]本博客其他.NE

ASP.NET Core 中的对象映射之 AutoMapper

目录 AutoMapper 简介 AutoMapper 使用 初始化 Profile设置 扁平化映射 集合映射 投影 条件映射 值转换 设置转换前后行为 配置验证及设置 反向映射 自定义转换器 自定义解析器 参考 AutoMapper 简介 AutoMapper是一个对象映射器,它可以将一种类型的对象转换为另一种类型的对象. 它提供了映射规则及操作方法,使我们不用过多配置就可以映射两个类, 可以帮我们免于编写无聊的映射代码. 在代码层与层之间隔离模型model上非常有用. AutoMapper

关系对象映射

ORM(object relationalMapping) 对象是一个内存结构,与关系数据型数据库中的记录从逻辑上说存在映射关系,但是从存储关系上说面向对象与关系型数据库存在互不匹配现象,对象关系映射是为了解决这种不匹配现象的技术,它通过描述对象和数据库之间映射关系的元素,将java程序中的对象自动持久化到关系数据库中,反过来讲数据库中的记录自动的读取到内存结构对象中. 对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据..内存中的对象之间存在关联和继承

推荐一个 Java 实体映射工具 MapStruct

声明: 1.DO(业务实体对象),DTO(数据传输对象). 2.我的代码中用到了 Lombok ,不了解的可以自行了解一下,了解的忽略这条就好. 在一个成熟的工程中,尤其是现在的分布式系统中,应用与应用之间,还有单独的应用细分模块之后,DO 一般不会让外部依赖,这时候需要在提供对外接口的模块里放 DTO 用于对象传输,也即是 DO 对象对内,DTO对象对外,DTO 可以根据业务需要变更,并不需要映射 DO 的全部属性. 这种 对象与对象之间的互相转换,就需要有一个专门用来解决转换问题的工具,毕竟

常见Bean映射工具分析评测及Orika介绍

原地址:http://tech.dianwoda.com/2017/11/04/gao-xing-neng-te-xing-feng-fu-de-beanying-she-gong-ju-orika/?utm_source=tuicool&utm_medium=referral Bean映射工具选择 工作中,我们经常需要将对象转换成不同的形式以适应不同的api,或者在不同业务层中传输对象而不同分层的对象存在不同的格式,因此我们需要编写映射代码将对象中的属性值从一种类型转换成另一种类型. 进行这种

Java数据文件映射工具

一 思路 1. 最近公司需要开发许多文件数据同步的程序, 将数据写入文件, 通过SFTP协议同步给其他平台, 本人太懒, 就想弄个一劳永逸的工具. 2. 系统启动时, 创建一个Map结构的容器, 容器中存储文件生成规则与数据Entity的映射属性配置. 3. 文件生成时, 根据根据配置Key查询配置的值(配置值包括文件编码, 文件是否存在文件头, 文件每一列的分隔符), 使用反射机制反射Entity拿到值, 根据配置的规则写入文件. 4. 读取文件时, 根据根据配置Key查询配置的值, 创建Li