问题标签 [automapper-5]

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 投票
1 回答
162 浏览

automapper - 使用 automapper 从两个类与第三类自动映射属性

我有两个类,比如 ClassA 和 ClassB,我想用 ClassC 映射它们。我该怎么做?

ClassA 只有 1 个属性,ClassB 有 5 个属性。ClassC 有 6 个属性。

情况如下:

0 投票
1 回答
1354 浏览

c# - 使用 Automapper 映射具有相似名称的成员

在我只能读取的远程数据库中,一天中的每个小时连续有 24 列。它们的名称分别为 P1、P2、...、P24。

我必须将这些值复制到我自己的数据库中,我将其命名为 H1、H2、...、H24。

如何使用自动映射器将远程列映射到本地?

这是当前的代码。我要问的是我们能不能把它转换成这样的东西:

Automapper 有一个带有名称的函数,replacemembername但它似乎不是我想要的。

0 投票
1 回答
925 浏览

c# - Automapper - 可插拔映射

我需要实现一个可插入系统,其中 Automapper 配置文件可以由许多 DLL 提供。

要映射的对象有一个人员列表:

PersonSrc 和 PersonDest 是可以在每个 DLL 中扩展的抽象类:

DLL1:

DLL2:

这个想法是实现类似的东西:

映射是通过以下方式完成的

但这种方法行不通。当“人员”列表包含员工和经理时,我尝试映射整个列表时出现异常。有什么建议吗?

0 投票
1 回答
3480 浏览

c# - Automapper - 将属性映射到集合

源类:

目的地等级:

所以,我想将 PresentAddress(一个对象)和 PreviousAddresses(集合)映射到 Addresses 属性(集合),其中每个元素都有 IsPresentAddress 属性,如果它被映射 PresentAddress 应该为 true,而对于 PreviousAddresses 映射元素则为 false。我尝试编写这样的地图基本规则:

当然,它不能正常工作。怎么办?

0 投票
0 回答
337 浏览

asp.net-mvc - Automapper - 条件列表映射

我有以下列表。我想将 映射attributesListfieldsList列表,但我只想更新 ValuefieldsList 中Name值相等的属性。中的所有其他属性都fieldsList应该被忽略——为简洁起见,我只列出了一些。

如何应用条件来更新Values目标列表中Name源和目标中的属性都匹配的属性?

有没有更短的方法来忽略属性而不是一个一个地列出它们?

0 投票
1 回答
280 浏览

c# - 在 Automapper CreateMap 和 Projection 中使用枚举作为标准

使用 AutoMapper v6.1

无需硬编码该值来代替枚举 ( (int)POStatusOptions.Ordered),您如何使用 Projection 完成此映射:

我对 automapper 的配置是使用配置文件。所以我有

我的配置类:

这被称为Application_Start()AutoMapperConfiguration.Configure();

我的个人资料类:

0 投票
0 回答
85 浏览

c# - 带有“new”修饰符的 AutoMapper 继承

我正在将我的项目从 AutoMapper 版本 4.2.1 更新到 6,在新版本中,我得到了一个意外的行为。

课程

映射器配置

版本:4.2.1

如果我执行以下地图:

“opp.DealerOpportunity.BranchCode”的属性值为:00168

从版本 5.0.2 到 6.2.2

在这些版本中,相同属性的值是:null

如何更新 AutoMapper 以获得与 4.2.1 版相同的结果,而无需在映射配置中添加“ForMember”?不幸的是,我有很多此类模式的案例。

0 投票
1 回答
2558 浏览

c# - 使用 automapper 将枚举映射到枚举

我有两个枚举:一个是仅后端的,第二个是版本化的并公开给 API 消费者。

后端版本:

API公开版本

我正在使用 Automapper 5.2.0 将后端枚举映射到 api 枚举,如下所示:

我现在需要忽略 SomeEnum.Three。所以我更改了如下代码:

现在我有错误:

AutoMapper.AutoMapperConfigurationException :成员的自定义配置仅支持类型上的顶级单个成员。

为什么?我该如何解决?

0 投票
0 回答
30 浏览

asp.net-mvc - 自动映射域类和自定义模型时如何删除循环引用?

我正在使用 automapper 将域类转换为 asp.net 中的自定义模型,问题是 automapper 使用子对象创建循环引用,如何删除循环引用?

0 投票
0 回答
794 浏览

entity-framework-core - 无法使用 Entity Framework Core 2.1 更新子实体

我是 EF 的新手,正在努力做看似基本的更新。我已经阅读了许多关于类似问题的帖子。据我所知,目前这在 EF Core 2.1 中并不容易做到,需要复杂的解决方法。这实际上是可能的还是我应该直接和单独地更新子实体?

注意:如果我只是更新 exampleA 并且不包含子实体,它可以正常工作。

我收到以下错误:

处理请求时发生未处理的异常。InvalidOperationException:无法跟踪实体类型“ExampleB”的实例,因为已经在跟踪具有相同键值 {'Id'} 的另一个实例。附加现有实体时,请确保仅附加一个具有给定键值的实体实例。考虑使用“DbContextOptionsBuilder.EnableSensitiveDataLogging”来查看冲突的键值。Microsoft.EntityFrameworkCore.ChangeTracking.Internal.IdentityMap.ThrowIdentityConflict(InternalEntityEntry 条目)

堆栈查询 Cookie 标头 InvalidOperationException:无法跟踪实体类型“ExampleB”的实例,因为已经在跟踪具有相同键值 {'Id'} 的另一个实例。附加现有实体时,请确保仅附加一个具有给定键值的实体实例。考虑使用“DbContextOptionsBuilder.EnableSensitiveDataLogging”来查看冲突的键值。

我已经创建了这个问题的一个基本示例。第一个stackoverflow帖子也让我知道是否需要更多信息。

任何帮助将不胜感激。

WebAPI 控制器:

更新前数据库中的示例A:

示例ADto:

自动映射后的示例A:

}

更新失败后数据库中的示例A(无更改):

AutoMapper 配置文件:

更新 1: 自动映射后添加对象

更新 2: 似乎 Automapper 不会在不删除和重新创建与 EF 混淆的项目的情况下映射集合。

AutoMapper.Collection https://www.nuget.org/packages/AutoMapper.Collection/目前不适用于 EF Core,所以我自己创建了一个函数来手动映射和更新集合。