问题标签 [automapper-3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
33073 浏览

c# - 复杂对象/嵌套映射中的自动映射器和映射列表

我正在从旧的映射标准转换为自动映射器。

这是我的课

无论我如何配置忽略或自定义映射,它似乎都不喜欢这种嵌套。任何 Automapper 专家都可以告诉我如何使用这样的复杂对象进行映射。实体类是通过 EF6 edmx 文件生成的。

0 投票
2 回答
7475 浏览

c# - AutoMapper:最大图形深度

我有以下与列表相关的实体:

国家 -> 地区 -> 自治市 -> 街道

当我将 Country 对象映射到我的 DTO 时,AutoMapper 会自动投影我的整个图形,一直到 Streets,这是一个很好的默认设置。在特定用例中,我只想映射根对象(国家)及其直接子对象(区域)。然后,这些地区应该有一个空的市镇列表(或为空)。

实现此目的的一种方法是创建这样的地图:

这意味着在将 Region 投影为根对象时,将忽略其市镇列表。解决方法是为每个可能的根对象创建单独的 ConfigurationStore 对象,但这会导致很多不同的 ConfigurationStore。有没有办法告诉 AutoMapper 只映射到对象图中的某个深度?

0 投票
1 回答
1119 浏览

c# - 使用 Automapper 仅映射特定类型

我如何将Source类映射到Destination,但只能Decimal使用 Automapper 类型?

0 投票
1 回答
636 浏览

automapper - 不支持的映射异常 - Automapper 中缺少类型映射配置?

我确定我缺少一些简单的东西。首先,我将展示我为连接管道而编写的所有代码,然后我将展示异常消息。然后,我将列出我试图解决的问题。

LicenseTrackerProfile

映射器引导程序

映射库

通用映射器

视图模型映射

请注意,正在调用初始化方法和配置方法,因此它们不会被“遗漏”。

例外

缺少类型映射配置或不支持的映射。

映射类型:软件 -> 软件 LicenceTracker.Entities.Software -> LicenceTracker.DomainEntities.Software

目标路径:软件

源值:LicenceTracker.Entities.Software

疑难解答 忽略列。我计划忽略列,从所有列开始,然后逐个取消忽略它们,直到找到问题列。但是,令我惊讶的是,当我忽略所有列时会发生错误:

域实体具有 [DataContract](在类级别)和 [DataMember](在方法级别)属性。我也将这些属性中的每一个都添加到了 EF 实体中。

除此之外,我没有想法。这一切似乎都已正确连接。

我错过了什么?

0 投票
1 回答
2197 浏览

automapper - Automapper:对相同类型使用类型转换器和值解析器

我有很多 DTO 必须映射到我的域对象。一般来说,与货币价值的映射需要应用四舍五入规则。这适用于 95% 以上的情况,但我有一些数据需要不同的舍入规则。我计划做下一个:

1) 为一般舍入规则创建一个 ITypeConverter,该规则适用于此类型转换的默认值。

2)为特殊的舍入情况创建一个ValueResolver,并在成员映射中指定它们的用途。

我创建了一个测试用例来尝试我的方法,但是在对特殊情况应用 ValueResolver 之后,AutoMapper 使用 TypeConverter 来获取最终值,使用一般规则。

这是错误的做法??可能是我错过了什么?

然后是测试用例:

测试结果:

0 投票
1 回答
544 浏览

c# - AutoMapper - 从 ViewModel 映射回 DTO 时,子对象保持为空

我有这张地图:

CadastroModule.Model.Cliente (MVVM 模型):

Sistema.DataEntities.Models (POCO):

Sistema.DataEntities.Models (POCO):

当我尝试它时它完美运行:

但是当我需要回到 poco 时,我遇到了麻烦:

我的结果:

在此处输入图像描述

为什么 Endereco 对象具有空值?

0 投票
4 回答
8584 浏览

c# - 具有相同属性名称的 AutoMapper 双向映射

鉴于这两个对象

这是进行映射的最佳方式,还是 AutoMapper 能够Roles自行Roles映射?

应用配置

执行

0 投票
2 回答
2473 浏览

c# - AutoMapper 条件实体映射

我有一个数据库实体,它存储这样的订单地址......

在此处输入图像描述

我有这样的 BLL 课程......

还有这样的一堂课……

我想根据 AddressType 列将 EF 实体映射到上述类。谁能解释我该怎么做?

更新

我想映射到OR.DeliveryAddressaddressType 是否为“Delivery”以及OR.InvoiceAddressaddressType 是否为“Invoice”

到目前为止,我已经能够做到这一点,但我不知道如何在实体映射级别应用条件......

更新 2

在与@Yuliam 讨论之后,这是我可以为我的问题提出的小提琴......

0 投票
1 回答
3182 浏览

.net - 没有使用带有 KeyValuePair 的 AutoMapper 进行映射

我正在构建一个通用的漂亮打印方法。我要单独处理的特殊类型之一是KeyValuePair<TK,TV>. 为了将对象减少到已知类型,我想我会将每个对象映射KeyValuePair<TK,TV>到一个KeyValuePair<object, object>.

以下代码始终在 的KeyValue属性中产生 2 个空值proxy

另一方面,这个非通用版本按预期工作:

为什么?

o在这个阶段已经被测试为一个KeyValuePair<,>
我在 .NET 4.0 上使用 AutoMapper 3.2.1.0。

0 投票
1 回答
1688 浏览

c# - 使用相同对象和不同类型转换器的自动映射器的两种方式映射

我想使用 AutoMapper 将 DTO 映射到模型。但是我的项目包含一些用于原始类型默认值的自定义规则,例如 [string null value is "_"]、[default int value is -1] 和 [date time fields must be integer like 19990221] 等。

在我的测试中,我有一个具有 Null 字符串值的外部 DTO。但是我的内部系统模型有一个“空字符串必须表示为”_“字符串”规则(它很烂,但它是一个遗留的设计决策)。

楷模:

Automapper 类型转换器:

我的测试是:

第二个断言失败。

我必须将 DTO 映射到模型和模型到 DTO 的数百个案例,我也有同样的整数问题。我如何选择转换器来进行不同的映射?