AutoMapper对象映射

简单示例

FileModel model = new FileModel();
FileEntity file = Mapper.DynamicMap<FileEntity>(model);

AutoMapper是基于对象到对象约定的映射工具,常用于(但并不仅限制于)把复杂的对象模型转为DTO,一般用于ViewModel模式和跨 服务范畴。

AutoMapper给用户提供了便捷的配置API,就像使用约定来完成自动映射那样。

AutoMapper包含以下功能:

平展
投影
配置验证
列表和数组
嵌套映射
自定义类型转换程序
自定义值转换程序
自定义值格式程序
Null值替换

AutoMapper是一款单向映射器。这意味着它并没有内建映射对象支持来回写至原始源,除非用户在更新映射对象之后明确地创建逆向反射。这需要

通过设计完成,因为让DTO回写到,比方说:域模型或其他东西,就会更改它的持久性,同时人们也认为它是反模式的。在这种解决方案中,命令消息在双向映射
中往往是更好的选择。然而,在某些特定环境中,有人可能会为双向映射辩解,比如:非常简单的CRUD应用程序。一个支持双向映射的框架就是Glue。

常见几种使用场景:

  • 对外服务接口,把逻辑层的实体转换成服务消费者需要的字段。
  • UI展现层,把业务对象转换成UI需要展现的字段。
  • 用户的输入输出,把DTO与领域模型互转。

参考文章:

http://www.cnblogs.com/mushroom/p/4291975.html

http://www.cnblogs.com/youring2/p/automapper.html

http://www.cnblogs.com/1-2-3/p/AutoMapper-Best-Practice.html

时间: 2024-11-09 05:02:11

AutoMapper对象映射的相关文章

.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 { /

对象映射工具AutoMapper介绍

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

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

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

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

数据对象映射模式

定义:将对象和数据存储映射起来,对一个对象的操作会映射为数据存储的操作 综合应用实例:在代码中实现数据对象映射模式,我们将实现一个ORM类,将复杂的SQL语句映射成对象属性的操作,结合使用数据对象映射模式,工程模式,注册模式 $page = new Page();$page->index(); class Page{ function index() { $user = \IMooc\Factory::getUser(1); $user->name= 'fango0'; $this->t

PHP 设计模式 笔记与总结(10)数据对象映射模式 2

[例2]数据对象映射模式结合[工厂模式]和[注册模式]的使用. 入口文件 index.php: <?php define('BASEDIR',__DIR__); //定义根目录常量 include BASEDIR.'/Common/Loader.php'; spl_autoload_register('\\Common\\Loader::autoload'); echo '<meta http-equiv="content-type" content="text/

c#注册表对象映射

用于快捷保存与读取注册表,为对应的对象 示例 [RegistryRoot(Name = "superAcxxxxx")] public class Abc : IRegistry { public string Name { get; set; } public int Age { get; set; } } 保存 Abc a = new Abc { Name = "mokeyish", Age = 100 }; RegistryKey register = Reg

.NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践

心情小札:近期换了工作,苦逼于22:00后下班,房间一篇狼藉~ 小翠鄙视到:"你就适合生活在垃圾堆中!!!" 晚上浏览博客园 看到一篇非常实用的博客:.NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper,花了10分钟简单了解了一下. 看评论也是挺有价值,同时也看到许多新手同学问道在实际项目中使用的情况. 下面就原作者的代码的基础上略作调整,阐述一下在实际项目场景中的使用: 第一步:了解类库方法:TinyMapper 主要有两个函数: TinyMapper.Bind&

关于iOS上的对象映射公用方法-备

具体的使用方法,请见下面说明,或者见工程里的单元测试代码.或者,参考原始文档: https://github.com/mystcolor/JTObjectMapping 使用方法 ======== 绝大多数情况下,需要用到的就是一个方法: [NSObject objectFromJSONObject:stateObject mapping:nil]; 其中,把NSObject换成我们想映射成的类的名字. 稍微复杂一点,假设类的属性和JSON里的key名字不是一一对应的,那么就要写一个映射关系表作