一.什么是AutoMapper与为什么用它. 它是一种对象与对象之间的映射器,让AutoMapper有意思的就是在于它提供了一些将类型A映射到类型B这种无聊的实例,只要B遵循AutoMapper已经建立的惯例,那么大多数情况下就可以进行相互映射了. 二.如何使用? 直接nuget install-package automapper 简单到不能再简单了. 三.入门 定义了连个简单的Model: public class Destination { public string name { get…
异常处理汇总-后端系列 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…
指定值只会执行一次 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程序集,创建三个类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…