https://www.jianshu.com/p/623655d7cb34

内联映射(Inline Mapping)

AutoMapper在 6.2 以上版本将动态创建类型映射。 当第一次调用Mapper.Map时,AutoMapper将创建类型映射配置并编译映射计划。 之后再调用将使用已编译的映射。

内联配置

要配置内联映射,请参考以下例子:

var source = new Source();

var dest = Mapper.Map<Source, Dest>(source, opt => opt.ConfigureMap().ForMember(dest => dest.Value, m => m.MapFrom(src => src.Value + 10)));

您可以使用本地函数使配置更容易阅读:

var source = new Source();

void ConfigureMap(IMappingOperationOptions<Source, Dest> opt) {
opt.ConfigureMap()
.ForMember(dest => dest.Value, m => m.MapFrom(src => src.Value + 10))
}; var dest = Mapper.Map<Source, Dest>(source, ConfigureMap);

您还可以在此内联映射中获取和使用运行时的值:

int valueToAdd = 10;
var source = new Source(); void ConfigureMap(IMappingOperationOptions<Source, Dest> opt) {
opt.ConfigureMap()
.ForMember(dest => dest.Value, m => m.MapFrom(src => src.Value + valueToAdd))
}; var dest = Mapper.Map<Source, Dest>(source, ConfigureMap);

内联验证

第一次使用映射时,AutoMapper 将使用默认验证配置来验证映射(目标成员必须全部被映射)。之后调用映射将跳过验证。这可确保安全地映射对象。

在执行每一个映射时根据配置的验证成员列表来决定验证源、目标还是不验证:

var source = new Source();

var dest = Mapper.Map<Source, Dest>(source, opt => opt.ConfigureMap(MemberList.None);

也可以完全关闭内联映射验证(除非确保已经测试所有映射,否则不建议这样做):

Mapper.Initialize(cfg => cfg.ValidateInlineMaps = false);

禁用内联映射

关闭内联映射:

Mapper.Initialize(cfg => cfg.CreateMissingTypeMaps = false);

06.AutoMapper 之内联映射(Inline Mapping)的更多相关文章

  1. 18.AutoMapper 之条件映射(Conditional Mapping)

    https://www.jianshu.com/p/8ed758ed3c63 条件映射(Conditional Mapping) AutoMapper 允许你给属性添加条件,只有在条件成立的情况下该成 ...

  2. 15. AutoMapper 之映射继承(Mapping Inheritance)

    https://www.jianshu.com/p/e4f05403bd13 映射继承(Mapping Inheritance) 映射继承有两个功能: 从基类或接口配置继承映射配置 运行时多态映射 继 ...

  3. html之内联元素与块状元素;

    html之内联元素与块状元素 一.html之内联元素与块状元素 1.块状元素一般比较霸道,它排斥与其他元素位于同一行内.比如div,并且width与height对它起作用. 2.内联元素只能容纳文本或 ...

  4. ASP.NET Core Web 应用程序系列(五)- 在ASP.NET Core中使用AutoMapper进行实体映射

    本章主要简单介绍下在ASP.NET Core中如何使用AutoMapper进行实体映射.在正式进入主题之前我们来看下几个概念: 1.数据库持久化对象PO(Persistent Object):顾名思义 ...

  5. (转)内联(inline)函数与虚函数(virtual)的讨论

    本文转自: http://topic.csdn.net/t/20051220/09/4469273.html 函数的inline属性是在编译时确定的, 然而,virtual的性质是在运行时确定的,这两 ...

  6. html中的块元素(Block)和内联元素(Inline)(转)

    我们首先要了解,所有的html元素,都要么是块元素(block).要么是内联元素(inline).下面了解一下块元素.内联元素各自的特点: 块元素(block)的特点: 1.总是在新行上开始:2.高度 ...

  7. (转载)内联函数inline和宏定义

    (转载)http://blog.csdn.net/chdhust/article/details/8036233 内联函数inline和宏定义   内联函数的优越性: 一:inline定义的类的内联函 ...

  8. 内联函数 inline

    (一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联. inline int min(int first, int ...

  9. 【css】主要的块状元素(block element)和内联元素(inline element行内元素)

      内联元素:只在行内发生作用,设置宽高不起作用,不会影响文字内容,使其换行等.竖直方向和间距也不起作用   display可以强制转换行内元素和块状元素,还可以取消显示none   块元素(bloc ...

随机推荐

  1. Spring Boot教程(三十二)多数据源配置与使用(1)

    之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源.在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.propertie ...

  2. AcWing:245. 你能回答这些问题吗(线段树最大子段和)

    给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一: 1.“1 x y”,查询区间 [x,y] 中的最大连续子段和,即 maxx≤l≤r≤ymaxx≤l≤r≤y{∑ri=lA[i]∑i=l ...

  3. Mysql 里CHAR和VARCHAR的最大长度及一些注意事项

    先写出结论: Mysql 5中 非空CHAR的最大总长度是255[字节]:非空VARCHAR的最大总长度是65533[字节]. 可空CHAR的最大总长度是254[字节]:可空VARCHAR的最大总长度 ...

  4. vue开发多页面应用

    1.添加多页面配置 在工程根路径下(package.json同目录)添加添加vue.config.js配置文件,内容为: module.exports = { pages: { index: 'src ...

  5. JS Generator yield

    function show() { console.log('a') console.log('b') } show() // 普通函数 function *show2() { console.log ...

  6. SpringBoot启动加载yml配置文件出现编码格式错误

    Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input l ...

  7. Uva 101 -- the block problem

    Uva 101 the block problem 题目大意: 输入n,得到编号为0~n-1的木块,分别摆放在顺序排列编号为0~n-1的位置.现对这些木块进行操作,操作分为四种. 1.move a o ...

  8. linux如何查看目录或文件夹的总大小--du命令

    记录一下如何查看一个目录或文件夹的总大小. 使用du命令的选项-s,可以统计整个目录或文件夹的大小. 例如 du -sk ./ 156k -k表示以KB为单位计算.

  9. navivate 下载

    https://www.jianshu.com/p/5f693b4c9468?mType=Group

  10. CentOS7环境下yum方式安装MySQL5.7

    这篇博文主要是从网上摘抄的,做个记录,以后如果有同样的需求,可以直接翻自己的记录.感谢两位大神: https://www.cnblogs.com/luohanguo/p/9045391.html ht ...