人本善良

导航

2019年6月20日 #

20.AutoMapper 之理解你的映射(Understanding Your Mappings)

摘要: https://www.jianshu.com/p/4f5c14fbf1c2 理解你的映射(Understanding Your Mappings) AutoMapper 为你的映射创建执行计划。在调试期间执行计划可以以表达式树的形式呈现。你可以通过安装VS扩展ReadableExpressions 阅读全文

posted @ 2019-06-20 17:17 简简单单2018 阅读(177) 评论(0) 推荐(0) 编辑

19.AutoMapper 之开放式泛型(Open Generics)

摘要: https://www.jianshu.com/p/ce4c7e291408 开放式泛型(Open Generics) AutoMapper可以支持开放式泛型的映射。为开放式泛型创建映射: public class Source<T> { public T Value { get; set; } } 阅读全文

posted @ 2019-06-20 17:16 简简单单2018 阅读(670) 评论(0) 推荐(0) 编辑

16.AutoMapper 之可查询扩展(Queryable Extensions)

摘要: https://www.jianshu.com/p/4b23e94a7825 可查询扩展(Queryable Extensions) 当在像NHibernate或者Entity Framework之类的ORM框架中使用AutoMapper的标准方法Mapper.Map 时,您可能会注意到,当Auto 阅读全文

posted @ 2019-06-20 17:15 简简单单2018 阅读(531) 评论(0) 推荐(0) 编辑

17.AutoMapper 之配置(Configuration)

摘要: https://www.jianshu.com/p/031ff68797dd 配置(Configuration) 通过构造函数创建并初始化MapperConfiguration实例: config = new MapperConfiguration(cfg => { cfg.CreateMap<Fo 阅读全文

posted @ 2019-06-20 17:15 简简单单2018 阅读(888) 评论(0) 推荐(0) 编辑

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

摘要: https://www.jianshu.com/p/8ed758ed3c63 条件映射(Conditional Mapping) AutoMapper 允许你给属性添加条件,只有在条件成立的情况下该成员才会被映射。 这可以用在尝试将int 映射到 无符号 int的情况下。 class Foo{ pu 阅读全文

posted @ 2019-06-20 17:15 简简单单2018 阅读(1054) 评论(0) 推荐(0) 编辑

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

摘要: https://www.jianshu.com/p/e4f05403bd13 映射继承(Mapping Inheritance) 映射继承有两个功能: 从基类或接口配置继承映射配置 运行时多态映射 继承的配置是可选择的,你可以在基类中使用Include 来指定可被继承的映射配置或者在派生类使用Inc 阅读全文

posted @ 2019-06-20 17:14 简简单单2018 阅读(458) 评论(0) 推荐(0) 编辑

14.AutoMapper 之依赖注入(Dependency Injection)

摘要: https://www.jianshu.com/p/f66447282780 依赖注入(Dependency Injection) AutoMapper支持使用静态服务定位构建自定义值解析器和自定义类型转换器的功能: Mapper.Initialize(cfg => { cfg.ConstructS 阅读全文

posted @ 2019-06-20 17:13 简简单单2018 阅读(1100) 评论(0) 推荐(0) 编辑

13.AutoMapper 之映射前后(Before and After Map Action)

摘要: https://www.jianshu.com/p/1ff732094f21 映射前后(Before and After Map Action) 你可能偶尔需要在映射发生前后执行自定义逻辑。这应该很少见,这种操作放在AutoMapper之外更加合理。不过你还是可以使用before/after 映射动 阅读全文

posted @ 2019-06-20 17:12 简简单单2018 阅读(1240) 评论(0) 推荐(0) 编辑

12.AutoMapper 之Null替换(NullSubstitution)

摘要: https://www.jianshu.com/p/3f86f237d1db Null 替换(Null Substitution) Null 替换允许当源类型成员在成员链任何位置为Null时给目标成员提供一个备用的值。这意味着目标成员不再映射为Null而是你提供的备用值。 var config = 阅读全文

posted @ 2019-06-20 17:11 简简单单2018 阅读(310) 评论(0) 推荐(0) 编辑

11.AutoMapper 之值转换器(Value Transformers)

摘要: https://www.jianshu.com/p/b77311546e64 值转换器(Value Transformers) 值转换器应用于单一类型的转换。AutoMapper在分配值之前,会检测该值是否设置了值转换器并应用该值转换器。 你可以在几个不同的级别创建值转换器: 全局 配置文件 映射图 阅读全文

posted @ 2019-06-20 17:11 简简单单2018 阅读(370) 评论(0) 推荐(0) 编辑

10.AutoMapper 之自定义值解析器(Custom Value Resolvers)

摘要: https://www.jianshu.com/p/3e7cf1d1f17d 自定义值解析器(Custom Value Resolvers) 虽然AutoMapper涵盖了相当多的目标成员映射方案,但是还是有1%到5%的目标值需要一些帮助才能解析。很多时候,自定义值的解析逻辑是域逻辑,需要直接在我们 阅读全文

posted @ 2019-06-20 17:10 简简单单2018 阅读(361) 评论(0) 推荐(0) 编辑

09.AutoMapper 之自定义类型转换器(Custom Type Converters)

摘要: https://www.jianshu.com/p/47054d92db2a 自定义类型转换器(Custom Type Converters) 有时需要完全控制一种类型到另一种类型的转换。这一般发生在两种类型不同,已经存在转换函数,并且希望从弱类型转变为强类型,如源类型的字符串到目标类型Int32。 阅读全文

posted @ 2019-06-20 17:09 简简单单2018 阅读(768) 评论(0) 推荐(0) 编辑

08.AutoMapper 之嵌套映射(Nested Mappings)

摘要: https://www.jianshu.com/p/013715d2352d 嵌套映射(Nested Mappings) 当映射引擎执行映射时,它可以使用各种方法之一来解析目标成员值。其中一种方法是使用另一种类型映射,其中源成员类型和目标成员类型也在映射配置中配置。这使我们不仅可以扁平化我们的源类型 阅读全文

posted @ 2019-06-20 17:08 简简单单2018 阅读(384) 评论(0) 推荐(0) 编辑

07.AutoMapper 之列表和数组(Lists and Arrays)

摘要: https://www.jianshu.com/p/419a3b7f12d5 列表和数组(Lists and Arrays) AutoMapper只需要配置元素类型的映射配置,不需要针对列表和数组进行配置。举个例子,我们可能有以下源类型和目标类类型: public class Source { pu 阅读全文

posted @ 2019-06-20 17:07 简简单单2018 阅读(410) 评论(0) 推荐(0) 编辑

06.AutoMapper 之内联映射(Inline Mapping)

摘要: https://www.jianshu.com/p/623655d7cb34 内联映射(Inline Mapping) AutoMapper在 6.2 以上版本将动态创建类型映射。 当第一次调用Mapper.Map时,AutoMapper将创建类型映射配置并编译映射计划。 之后再调用将使用已编译的映 阅读全文

posted @ 2019-06-20 17:06 简简单单2018 阅读(474) 评论(0) 推荐(0) 编辑

04.AutoMapper 之投影(Projection)

摘要: https://www.jianshu.com/p/031553705417 投影(Projection) 投影将源转换为目标而不是扁平化对象模型。如果没有额为的配置AutoMapper需要一个扁平化的目标来匹配源类型的命名结构。当你想将源值投影到一个与源结构不完全匹配的目标中,必须指定自定义的成员 阅读全文

posted @ 2019-06-20 17:05 简简单单2018 阅读(308) 评论(0) 推荐(0) 编辑

05.AutoMapper 之配置验证(Configuration Validation)

摘要: https://www.jianshu.com/p/5901a5d1ef15 配置验证(Configuration Validation) 手写映射配置代码虽然繁琐,但具有可测试的优点。AutoMapper背后的设计灵感之一是不仅消除了自定义映射代码,而且消除了手动测试的需要。由于从源到目标的映射是 阅读全文

posted @ 2019-06-20 17:05 简简单单2018 阅读(288) 评论(0) 推荐(0) 编辑

03.AutoMapper 之反向映射与逆向扁平化(Reverse Mapping and Unflattening)

摘要: https://www.jianshu.com/p/d72400b337e0 AutoMapper现在支持更丰富的反向映射支持。 假设有以下实体: public class Order { public decimal Total { get; set; } public Customer Cust 阅读全文

posted @ 2019-06-20 17:04 简简单单2018 阅读(540) 评论(0) 推荐(0) 编辑

01.AutoMapper 之约定(Conventions)

摘要: 转载(https://www.jianshu.com/p/d4c472d95da4) 约定(Conventions) 条件对象映射器 条件对象映射器根据源类型和目标类型之间的条件生成新类型映射。 var config = new MapperConfiguration(cfg => { cfg.Ad 阅读全文

posted @ 2019-06-20 17:03 简简单单2018 阅读(228) 评论(0) 推荐(0) 编辑

02.AutoMapper 之扁平化(Flattening)

摘要: https://www.jianshu.com/p/65099590c930 扁平化(Flattening) 对象映射器的常见用法是将一个复杂对象模型扁平化为一个简单模型。例如您有一个以下复杂模型: public class Order { private readonly IList<OrderL 阅读全文

posted @ 2019-06-20 17:03 简简单单2018 阅读(263) 评论(0) 推荐(0) 编辑