AutoMapper

.NET的ORM映射工具
授权协议 Apache
开发语言 .NET
所属分类 程序开发、 ORM/持久层框架
软件类型 开源软件
地区 不详
投 递 者 邓鸿雪
操作系统 Windows
开源组织
适用人群 未知
 软件概览

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

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

AutoMapper包含以下功能:

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

AutoMapper是一款单向映射器。这意味着它并没有内建映射对象支持来回写至原始源,除非用户在更新映射对象之后明确地创建逆向反射。这需要 通过设计完成,因为让DTO回写到,比方说:域模型或其他东西,就会更改它的持久性,同时人们也认为它是反模式的。在这种解决方案中,命令消息在双向映射 中往往是更好的选择。然而,在某些特定环境中,有人可能会为双向映射辩解,比如:非常简单的CRUD应用程序。一个支持双向映射的框架就是Glue。

  • 译文链接: https://www.infoworld.com/art… AutoMapper 是一个非常流行的 object-to-object 映射库,它的目的就是帮助你实现不同类型对象之间的映射,举一个例子,在 DDD 开发模式中,你可能需要实现将 DTO object 映射为 Model object,在过去,你需要人肉的将这两个类型下的属性字段进行一一映射,现在 AutoMapper 就

  • 前言 本文基于发稿时: Automapper的最新版本:10.1.1。此扩展用于非ASP.NET Core程序。 AutoMapper.Extensions.Microsoft.DependencyInjection的最新版本:8.1.1。此扩展用于ASP.NET Core程序 浏览的时候比较重要内容我在标题前加了“★”, 可以重点关注。 0. 快速开始 首先,配置映射关系 public clas

  • 初识AutoMapper 在开始本篇文章之前,先来思考一个问题:一个项目分多层架构,如显示层、业务逻辑层、服务层、数据访问层。层与层访问需要数据载体,也就是类。如果多层通用一个类,一则会暴露出每层的字段,二者会使类字段很多,而且会出现很多冗余字段,这种方式是不可取的;如果每层都使用不同的类,则层与层调用时,一个字段一个字段的赋值又会很麻烦。针对第二种情况,可以使用AutoMapper来帮助我们实现

  • AutoMapper在模型映射过程中起着重要的作用,首先添加两个包引用 nuget automapper nuget AutoMapper.Extensions.Microsoft.DependencyInjection 创建模型类与它所对应的Dto public class User { public long Id { get; set; } publi

  • c# automapper AutoMapper是一种流行的对象到对象映射库,可用于映射属于不同类型的对象。 例如,您可能需要将应用程序中的DTO(数据传输对象)映射到模型对象。 AutoMapper省去了手动映射此类不兼容类型的一个或多个属性的繁琐工作。 [ 同样在InfoWorld上:敏捷开发人员的7个关键编码实践 ] 要开始使用AutoMapper,应在Visual Studio中创建一个项

  • 初步认识AutoMapper 前言 手动映射 使用AutoMapper 创建映射 Conventions 映射到一个已存在的实例对象 前言 通常在一个应用程序中,我们开发人员会在两个不同的类型对象之间传输数据,通常我们会用DTOs(数据传输对象),View Models(视图模型),或者直接是一些从一个service或者Web API的一些请求或应答对象。一个常见的需要使用数据传输对象的情况是,我

  • 什么是AutoMapper 我们都知道,引用类型直接赋值传递的是地址,如果直接赋值,则改变一个类的属性的同时也在改变另一个类。 所以,当我们需要实现像int类型直接赋值更改互不影响的效果时,我们需要映射。 将A类映射赋值到B类的时候,我们就需要一个对象映射器(object-object),也就是AutoMapper。 我们只需要提前配置好要映射的两个类,即可轻松实现反射。 配置 使用MapperC

  • 目录 介绍 背景 使用代码 结论 注意 兴趣点 介绍 AutoMapper是一个很好的工具,可以轻松地在两个类之间进行映射。但是,如果映射在NHibernate实体和DTO(数据传输对象)之间,则可能会变得很危险。使用NHibernate的延迟加载功能,这很容易导致不需要的数据库选择。AutoMapper有一些很好的特性,通过Queryable Extensions让开发人员可以控制在运行时应该和

 相关资料
  • 1.【强制】 在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明。 说明: 1) 增加查询分析器解析成本。 2) 增减字段容易与 resultMap 配置不一致。 2.【强制】 POJO 类的布尔属性不能加 is,而数据库字段必须加 is_,要求在 resultMap 中进行 字段与属性之间的映射。 说明:参见定义 POJO 类以及数据库字段定义规定,在<resultMap

  • 我读过一个映射是“关系在Java中是指源对象有一个引用另一个目标对象的属性,并且(如果)目标对象与源对象有反向关系,它也将是一个一个关系。”来源:http://en.wikibooks.org/wiki/java_persistence/OneToOne 基于以上,我假设一个表可以引用基数为(零)1的另一个表,而这个表可以反向引用基数为(零)1的第一个表。 所以,我创建了这个简单的实体(Cust可

  • 支持 PEP 484 键入批注以及 Mypy 类型检查工具。 注解 Mypy插件和键入注释应该被视为 Alpha级别 用于SQLAlChemy的早期1.4版本。该插件尚未在真实场景中进行测试,可能存在许多未处理的情况和错误情况。新类型存根的详细信息还包括 如有更改,可随时更改 在1.4系列期间。 安装 Mypy插件依赖于打包在 sqlalchemy2-stubs 。这些存根必须完全替换以前的 sq

  • 问题内容: 拥有方 到底是什么意思?一些映射示例( 一对多,一对一,多对一 )的解释是什么? 以下文本摘录自Java EE 6文档中 @OneToOne 的描述。您可以在其中看到概念 拥有的一面 。 定义与另一个具有一对一多重性的实体的单值关联。通常不必显式指定关联的目标实体,因为通常可以从被引用对象的类型中推断出该目标实体。如果关系是双向的, 则非拥有方 必须使用OneToOne批注中的mapp

  • 问题内容: 拥有方到底是什么意思?一些映射示例(一对多,一对一,多对一)的解释是什么? 以下文本摘录自Java EE 6文档中@OneToOne的描述。您可以在其中看到概念拥有方面。 定义与另一个具有一对一多重性的实体的单值关联。通常不必显式指定关联的目标实体,因为通常可以从被引用对象的类型中推断出该目标实体。如果关系是双向的,则非拥有方必须使用OneToOne批注中的mappingBy元素来指定

  • 问题内容: 我对使用关系数据库还很陌生,所以我更喜欢使用一个好的ORM来简化事情。我花时间评估了不同的Python ORM,我认为我需要SQLAlchemy。但是,我已经陷入了精神上的死胡同。 我需要创建一个新表,以与在应用程序的播放器表中创建的播放器的每个实例一起使用。我想我知道如何通过元数据更改表的名称然后调用create函数来创建表,但是我不知道如何将其映射到新的动态类。 有人可以给我一些提

  • 问题内容: 我有两个组成部分,一个基本组成部分: 还有一个扩展它的组件: 但是,当我尝试创建的实例时,出现一个错误,指出它们被映射为两个不同的表。我知道Hibernate可以忽略基类,但是我该如何使用ColdFusion的标签,还是必须依靠HBM映射才能使用此功能? 附录:删除from 也不起作用,如果没有的话,就好像没有属性一样。 问题答案: 在您的基本“ Entity”类中,尝试删除persi

  • 我正在使用Hibernate和JPA注释来映射我的类。当hibernate尝试映射这个类时,我遇到了一个问题 我的Social alStat类是: 我得到了这个错误: 我猜发生这种情况是因为我试图映射到一个基本类,但@ElementCollection注释不应该解决这个问题吗? 我的item类如下所示: