问题标签 [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.
automapper - 使用 automapper 从两个类与第三类自动映射属性
我有两个类,比如 ClassA 和 ClassB,我想用 ClassC 映射它们。我该怎么做?
ClassA 只有 1 个属性,ClassB 有 5 个属性。ClassC 有 6 个属性。
情况如下:
c# - 使用 Automapper 映射具有相似名称的成员
在我只能读取的远程数据库中,一天中的每个小时连续有 24 列。它们的名称分别为 P1、P2、...、P24。
我必须将这些值复制到我自己的数据库中,我将其命名为 H1、H2、...、H24。
如何使用自动映射器将远程列映射到本地?
这是当前的代码。我要问的是我们能不能把它转换成这样的东西:
Automapper 有一个带有名称的函数,replacemembername
但它似乎不是我想要的。
c# - Automapper - 可插拔映射
我需要实现一个可插入系统,其中 Automapper 配置文件可以由许多 DLL 提供。
要映射的对象有一个人员列表:
PersonSrc 和 PersonDest 是可以在每个 DLL 中扩展的抽象类:
DLL1:
DLL2:
这个想法是实现类似的东西:
映射是通过以下方式完成的
但这种方法行不通。当“人员”列表包含员工和经理时,我尝试映射整个列表时出现异常。有什么建议吗?
c# - Automapper - 将属性映射到集合
源类:
目的地等级:
所以,我想将 PresentAddress(一个对象)和 PreviousAddresses(集合)映射到 Addresses 属性(集合),其中每个元素都有 IsPresentAddress 属性,如果它被映射 PresentAddress 应该为 true,而对于 PreviousAddresses 映射元素则为 false。我尝试编写这样的地图基本规则:
当然,它不能正常工作。怎么办?
asp.net-mvc - Automapper - 条件列表映射
我有以下列表。我想将 映射attributesList
到fieldsList
列表,但我只想更新 Value
fieldsList 中Name
值相等的属性。中的所有其他属性都fieldsList
应该被忽略——为简洁起见,我只列出了一些。
如何应用条件来更新Values
目标列表中Name
源和目标中的属性都匹配的属性?
有没有更短的方法来忽略属性而不是一个一个地列出它们?
c# - 在 Automapper CreateMap 和 Projection 中使用枚举作为标准
使用 AutoMapper v6.1
无需硬编码该值来代替枚举 ( (int)POStatusOptions.Ordered
),您如何使用 Projection 完成此映射:
我对 automapper 的配置是使用配置文件。所以我有
我的配置类:
这被称为Application_Start()
:
AutoMapperConfiguration.Configure();
我的个人资料类:
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”?不幸的是,我有很多此类模式的案例。
c# - 使用 automapper 将枚举映射到枚举
我有两个枚举:一个是仅后端的,第二个是版本化的并公开给 API 消费者。
后端版本:
API公开版本
我正在使用 Automapper 5.2.0 将后端枚举映射到 api 枚举,如下所示:
我现在需要忽略 SomeEnum.Three。所以我更改了如下代码:
现在我有错误:
AutoMapper.AutoMapperConfigurationException :成员的自定义配置仅支持类型上的顶级单个成员。
为什么?我该如何解决?
asp.net-mvc - 自动映射域类和自定义模型时如何删除循环引用?
我正在使用 automapper 将域类转换为 asp.net 中的自定义模型,问题是 automapper 使用子对象创建循环引用,如何删除循环引用?
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,所以我自己创建了一个函数来手动映射和更新集合。