C# AutoMapper】的更多相关文章

剧情开始 为何相爱? 相处的问题? 女人的伟大? 剧情收尾? 有时候相识即是一种缘分,相爱也不需要太多的理由,一个眼神足矣,当EntityFramework遇上AutoMapper,就是如此,恋爱虽易,相处不易. 在DDD(领域驱动设计)中,使用AutoMapper一般场景是(Domain Layer)领域层与Presentation Layer(表现层)之间数据对象的转换,也就是DTO与Domin Model之间的相互转换,但是如果对AutoMapper有深入了解之后,就会发现她所涉及的领域不…
写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [AutoMapper官方文档]DTO与Domin Model相互转换(下) 未完待续... 本篇目录: Flattening-复杂到简单 Projection-简单到复杂 Configuration Validation-配置验证 Lists and Array-集合和数组 Nested mapping…
什么是AutoMapper? AutoMapper是一个对象和对象间的映射器.对象与对象的映射是通过转变一种类型的输入对象为一种不同类型的输出对象工作的.让AutoMapper有意思的地方在于它提供了一些将类型A映射到类型B这种无聊的事情的有趣惯例.只要类型B遵守AutoMapper已经建立的惯例,大多数情况下,映射两种类型零配置就可以了. 为什么使用AutoMapper? 映射代码是无聊的.测试映射代码更无聊.AutoMapper提供了一些简单配置,还有一些简单的映射测试.真正的问题可能是“为…
平台之大势何人能挡? 带着你的Net飞奔吧! http://www.cnblogs.com/dunitian/p/4822808.html#skill 先看效果:(完整Demo:https://github.com/dunitian/LoTCodeBase/tree/master/NetCode/3.常用技能/05.AutoMapper) 原来是这么干的: 有了AutoMapper是这么干的: ———————————————————— 1.AutoMapper初始化 2.配置文件 3.对象映射配…
异常处理汇总-后端系列 http://www.cnblogs.com/dunitian/p/4523006.html 应用场景:ViewModel==>Mode映射的时候出错 AutoMappe r错误信息:Unmapped members were found. Review the types and members below.Add a custom mapping expression, ignore, add a custom resolver, or modify the sour…
软件环境 vs2015 asp.net mvc 5 .NET Framework 4.5.2 AutoMapper 5.2.0.0 AutoMapper安装 新建asp.net mvc 项目 AutoMapperExample,此处应该都会用vs新建mvc项目了,不再讲解如何创建 , 点击 工具→NuGetB包管理器→管理解决方案的NuGet程序包,在弹出的界面中,选中 "浏览",输入autoMapper,回车搜索,在搜索出的程序包中,选中第一个,然后安装 输出如下图所示,则表示安装A…
指定值只会执行一次 public class MomanBaseProfile : Profile { public MomanBaseProfile() { CreateMap<RequestBase, MomanEntity>() .ForMember(d => d.ID, op => op.Ignore()) .ForMember(d => d.UID, op => op.UseValue(Guid.NewGuid()))//使用Mapper过程中始终不变 .Fo…
写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [AutoMapper官方文档]DTO与Domin Model相互转换(下) 未完待续... 本篇目录: Custom Type Converters-自定义类型转换器 Custom Value Resolvers-自定义值解析器 Null Substitution-空值替换 Containers-IoC…
写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [AutoMapper官方文档]DTO与Domin Model相互转换(下) 未完待续... 本篇目录: Mapping Inheritance-映射继承 Queryable Extensions (LINQ)-扩展查询表达式 Configuration-配置 Conditional Mapping-条件…
写在前面 实体和值对象 实体和对象 故常无欲以观其妙,常有欲以观其徼 初始实体和演化实体 代码中的DTO AutoMapper实体转换 后记 实体(Entity).对象(Object).DTO(Data Transfer Object)数据传输对象,老生常谈话题,简单的概念,换个角度你会发现更多的东西.个人拙见,勿喜请喷. 实体和值对象 在常规开发中(事务脚本),我们所说的实体只是一些数据库映射的字段,对象只不过是包含业务功能描述的集合而已,在DDD(领域驱动设计)中,实体(Entity)和值对…
返回总目录 映射前后操作 偶尔有时候,在映射发生之前或之后,你可能需要执行一些自定义的逻辑.这可能是很少见的事情,因为在AutoMapper之外处理这些事情是更明显的.你可以创建一个映射前后的全局操作: Mapper.CreateMap<Source, Dest>() .BeforeMap((src, dest) => src.Value = src.Value + ) .AfterMap((src, dest) => dest.Name = "John");…
返回总目录 首先,先创建一个控制台项目,引用AutoMapper程序集,创建三个类User,UserDto,UserMappingProfile,下面的知识点的演示都以此项目为基础,代码分别如下: namespace MiddleAutoMapper { public class User { public User() { } public int Age { get; set; } } } namespace MiddleAutoMapper { public class UserDto {…
返回总目录 自定义类型转换 有时,需要完全控制一个类型到另一个类型的转换.一个类型一点都不像另一个类型,而且转换函数已经存在了,在这种情况下,你想要从一个“宽松”的类型转换成一个更强壮的类型,例如一个string的源类型到一个int32的目标类型. 这里有两个类Source和Destination,要把前者映射到后者,代码如下: public class Source { public string Value1 { get; set; } public string Value2 { get;…
返回总目录 自定义值解析 虽然AutoMapper覆盖了相当一部分目标成员的映射场景,但是还有 1-5%的目标值需要解析处理一下.很多时候,自定义的值解析是可以放在领域层的领域逻辑.然而,如果该逻辑只是和映射操作有关的话,那它就会应为一些不必要的行为使得源类型很凌乱.这种场合,AutoMapper允许我们为目标成员配置自定义的值解析器. 举个栗子,有两个类Source和Destination,定义如下: public class Source { public int Value1 { get;…
返回总目录 Dynamic和ExpandoObject映射 AutoMapper不用任何配置就可以从dynamic(动态)对象映射或映射到dynamic对象. namespace FifthAutoMapper { //定义一个Person类 public class Person { public int Age { get; set; } public string Name { get; set; } } //主程序 class Program { static void Main(str…
返回总目录 List和数组 AutoMapper只要求元素类型的配置而不要求可能会用到的任何数组或者list类型.比如,我们有一个简单的源和目标类型: public class Source{ public int Value { get; set; }}public class Destination{ public int Value { get; set; }} 支持所有的基本泛型集合,代码如下: }, }; IEnumerable<Destination> iEnumerableDes…
返回总目录 Null值替换 如果源类型的成员链上的属性值为Null,Null值替换允许提供一个可替换的值.下面有两个类Person和PersonInfo类,都有一个属性Title(头衔),从Person映射到PersonInfo,如果Person的属性没有赋值,那么PersonInfo的对应属性值就用"屌丝"来替换. namespace SeventhAutoMapper { class Person { public string Title { get; set; } } clas…
这个模块封装了Automapper,使其更易于使用. 下图描述了改模块涉及的所有类之间的关系. AutoMapAttribute,AutoMapFromAttribute和AutoMapToAttribute:这三个attribute用于标注一个类到另外一个类的map方向. AutoMapperHelper: 通过调用Automapper的API,根据类的AutoMap的特性完成类型之间的Map. AbpAutoMapperModule: 1. 查找项目中所有标注了AutoMap特性的类型,并完…
最近在使用DDD重新搭建公司内部OA的架构,具体情况搭好了应该会写一下,这里说的是今天遇到的问题. 先简单说一下相关的几个部分: 1.聚合.聚合分成了两个模块:一个包含审批单据等估计至少今年不会怎么变的抽象模型:另外一个包含不同审批单据的实现类,继承至抽象的模块:由于主要是要说这一块,就贴一点部分代码上来,与本随笔要说的无关的部分就省略号了... [DomainAttribute(DomainType = ApplyDomainType.Root, Description = "申请单"…
本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文地址 www.cnblogs.com/tdws  写在前面 OOM顾名思义,Object-Object-Mapping实体间相互转换,AutoMapper也是个老生常谈了,其意义在于帮助你无需手动的转换简单而又麻烦的实体间关系,比如ViewModel和entity的转换,SearchModel和Entity的转换,我这篇分享的意义在于,网上大多数的分享都是几年前的,很多方法已经被废弃,到了编译器里会告诉你该方法已经过时,废弃的,不建议使…
AutoMapper的匹配 1,智能匹配 AutoMapper能够自动识别和匹配大部分对象属性: 如果源类和目标类的属性名称相同,直接匹配,不区分大小写 目标类型的CustomerName可以匹配源类型的Customer.Name 目标类型的Total可以匹配源类型的GetTotal()方法 2,自定义匹配 Mapper.CreateMap<CalendarEvent, CalendarEventForm>()                                          …
一.演示: 接口查看:http://apidoc.docode.top/ 接口后台:http://apiadmin.docode.top/ 登录:administrator,123456 二.使用到的技术: ①.AdminLite(基于Bootstrap的响应式UI模板) ②.ASP.NET MVC 5 ③.Entity Framework 6 ④.AutoFac ⑤.AutoMapper ⑥.MySql 6.9.9 三.源呆码: CSharp Api文档系统下载 四.结束语: 养兵千日,用兵一…
1.AutoMapper简单介绍 官网:http://automapper.org/ 源码:https://github.com/AutoMapper/AutoMapper NUGET安装: PM> Install-Package AutoMapper AutoMapper是基于对象到对象约定的映射工具,常用于(但并不仅限制于)把复杂的对象模型转为DTO,一般用于ViewModel模式和跨 服务范畴. AutoMapper给用户提供了便捷的配置API,就像使用约定来完成自动映射那样. AutoM…
首先在NuGet添加AutoMapper /// <summary> /// AutoMapper帮助类 /// </summary> public static class AutoMapperHelper { /// <summary> /// 单个对象映射 /// </summary> public static T MapTo<T>(this object obj) { if (obj == null) return default(T)…
标题是个噱头,完全不写代码自动是不现实的,只是简化了CreateMap.方法也是很粗糙的,看看吧. 我想在使用AutoMapper的时候最恶心的一定是写了一个Profile,里边有n行 Mapper.CreateMap<T1, T2>(),也可能是我没有用对?求指教啊~! 解决思路 CreateMap得分两类,80%只是纯创建CreateMap.20%是带自定义映射的.自定义 映射我觉得没必要省了,省个80%也足够了 既然要在初始化的时候解决掉这80%,那么如何加载这些类?如何识别TSourc…
阅读目录 1. 介绍 2. 基本使用 3. 自动分割映射(Flattening) 4. 自定义字段映射(Projection) 5. 验证配置(Configuration validation) 介绍 AutoMapper是一个轻量级的类库,主要功能是把一个对象转换成另外一个对象,而避免我们每次都手工去转换. 常见几种使用场景: 对外服务接口,把逻辑层的实体转换成服务消费者需要的字段. UI展现层,把业务对象转换成UI需要展现的字段. 用户的输入输出,把DTO与领域模型互转. AutoMappe…
AutoMapper 是一个基于命名约定的对象->对象映射工具. 只要2个对象的属性具有相同名字(或者符合它规定的命名约定),AutoMapper就可以替我们自动在2个对象间进行属性值的映射.如果有不符合约定的属性,或者需要自定义映射行为,就需要我们事先告诉AutoMapper,所以在使用 Map(src,dest)进行映射之前,必须使用 CreateMap() 进行配置. Mapper.CreateMap<Product, ProductDto>(); // 配置 Product en…
AutoMapper:Queryable Extensions 示例代码: using (var context = new orderEntities()) { return context.OrderLines.Where(ol => ol.OrderId == orderId) .Project().To<OrderLineDTO>().ToList(); } 这是 Jimmy Bogard 提供的一段使用.Project().To的示例代码,但如果加上.OrderBy(ol =&…
示例代码: public List<OrderLineDTO> GetLinesForOrder(int orderId) { Mapper.CreateMap<OrderLine, OrderLineDTO>() .ForMember(dto => dto.Item, conf => conf.MapFrom(ol => ol.Item.Name) .ForMember(dto => dto.Name, opt => opt.ResolveUsing…
写在前面 我到底是什么? 越界的可怕 做好自己 后记 上一篇<恋爱虽易,相处不易:当EntityFramework爱上AutoMapper>文章的最后提到,虽然AutoMapper为了EntityFramework做了一些改变,然后就看似幸福的在一起了,但是有人(Roger Alsing)看不下去,写了一篇文章:http://rogeralsing.com/2013/12/01/why-mapping-dtos-to-entities-using-automapper-and-entityfr…