问题标签 [automapper-6]

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 投票
0 回答
692 浏览

asp.net-core-2.0 - 使用 ASP.NET Core 的 AutoMapper 扩展在启动时编译映射

我正在使用ASP.NET Core 的 AutoMapper 扩展,所以我在启动时注册 Automapper,就像在这个官方示例中一样。我想在启动时编译映射,而不是让 Automapper 进行默认的惰性编译,但似乎无法弄清楚如何使用此设置进行急切编译(在此处记录)。我尝试了以下方法,但据我所知,它不会导致编译发生:

我要解决的问题是一个特定的映射相当复杂,调用多个格式化函数,而且第一次命中总是很慢。我希望在应用程序启动时而不是在第一次地图执行时产生这种成本。

编辑:经过进一步调查,性能损失似乎来自查询的 EF Core 编译,这导致我尝试像这样预编译查询:

但是,似乎 ProjectTo 不能与 EF.CompileQuery 一起使用,因为当我尝试执行时出现此错误:

0 投票
1 回答
136 浏览

c# - Automapper 6.2.2 中的动态忽略成员

当我这样做时

AutoMapper 4.0.4 成功获取了 typeMap。但是在 automapper 6.2.2 中这不起作用。GetField("_typeMap", BindingFlags.NonPublic | BindingFlags.Instance)函数返回空值。

0 投票
1 回答
778 浏览

automapper - 为所有具有自动映射器类型的成员配置约定

我所有的域模型都有 field public CurrencyId CurrencyId {get; set;}。我所有的视图模型都已归档public CurrencyVm Currency {get; set;}。Automapper 知道如何Map<CurrencyVm>(CurrencyId)。如何设置自动约定,所以我不必.ForMember(n => n.Currency, opt => opt.MapFrom(n => n.CurrencyId));

0 投票
0 回答
350 浏览

c# - AutoMapper 6.2.2 错误映射类型

我正在尝试使用 Automapper 映射 2 种类型

但我仍然收到以下错误:

错误映射类型

映射类型:MibUserRight -> UserRight GVP.Database.MibUserRight -> TvOpenPlatform.UserRights.Domain.Entities.UserRight

类型映射配置:MibUserRight -> UserRight GVP.Database.MibUserRight -> TvOpenPlatform.UserRights.Domain.Entities.UserRight

属性:定价模型

如果我告诉它忽略它,它为什么要尝试映射?

0 投票
1 回答
185 浏览

automapper - Automapper 是否允许禁用(自动)展平?

根据文档Automapper 执行除了“正常”(可映射类型中的属性到属性)之外的自动映射。

然而,当处理实体框架中的某些 DTO 时,此功能会导致一些无意的行为,有时会通过导航属性触发数据加载,我考虑完全禁用它(即在MapperConfiguration级别上)。

我知道更改某些名称或使用[NotMapped]可能会奏效,但这需要注意每种情况。

问题: Automapper 是否允许禁用(自动)展平?

0 投票
1 回答
3450 浏览

c# - AutoMapper 映射一个子列表对象

我正在使用通用方法使用 Automapper 映射两个类

我的通用方法

ClientMappingProfile.cs

StudentDetailsViewModel.cs

资格视图模型.cs

StudentValueObject.cs

StudentQualificationValueObject.cs

用法

因此,这适用于 Mapping StudentDetailsViewModel.cswith StudentValueObject.cs。但它默默地无法将我的子列表对象复制List<QualificationViewModel>List<StudentQualificationValueObject>. 子列表对象似乎总是null. 我是 AutoMapper 的新手。我需要一些帮助来了解我哪里出错了或者需要在我的通用方法中添加/修复什么,以便子列表对象与父对象一起复制到。

更新-

目前我正在使用下面的代码并且它工作正常但我很困惑这是这样做的正确方法。

0 投票
0 回答
194 浏览

c# - Automapper - 映射到现有实体列表时无法忽略属性

我有两个类TenantRestrictSourceEntityTenantRestrictSource映射器配置文件

当我TenantRestrictSourceEntityTenantRestrictSource. Mapper.Map(tenantRestrictSourceEntity, tenantRestrictSource)一切正常。租户属性被正确忽略。

但是,当我尝试将列表映射TenantRestrictSourceEntityTenantRestrictSource具有Mapper.Map(tenantRestrictSourceEntities, tenantRestrictSources)租户属性的列表时,总是null.

映射列表对象时如何忽略该属性?

0 投票
1 回答
491 浏览

c# - AutoMapper 更新 UseDestinationValue 在虚拟属性上未按预期工作

努力让 AutoMapper (6.1.1) 在尝试更新现有供应商和相关供应商联系人的情况下工作。

我已经尝试在相关实体上使用.ignore().UseDestinationValues(),但均无济于事。

以下是映射后目标值发生的情况:

  1. existingStratusVendor.Id = 0(应该是现有的值)
  2. existingStratusVendor.VendorContacts.Id = 0(应该是现有的值)
  3. existingStratusVendor.Items = null,但在映射之前有 1 个相关实体,与所有其他相关虚拟属性相同。(这也发生在我标记的所有其他虚拟属性上.UseDestinationValues()

我做错了什么还是我误解了这应该如何工作?

POCO

地图

代码

0 投票
0 回答
638 浏览

automapper-6 - AutoMapper 忽略来自所有目的地的所有未映射的属性

我们在 AutoMapper 中有以下内容

我想要一些可以配置为忽略每个目标映射中的所有未映射属性的东西。

我不想为每种类型手动创建地图。我希望它是自动的。Automapper 仅在源和目标中的属性相同时才进行自动映射。如果目的地有一个额外的属性映射失败,我们应该像下面那样进行手动映射。

我想避免这种情况。我希望所有映射(以及未来的事情)一次发生。

对其他自动映射器的任何想法、建议或建议(赞赏)

0 投票
0 回答
35 浏览

automapper - Automapper Base type, dervied type DTO Mapping

我有以下课程:

以及以下 DTO:

以及以下映射:

有没有办法CreateMap<Entity, EntityDTO>()告诉 Automapper 使用基于派生类型的相关映射?