问题标签 [automapper-4]

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 回答
128 浏览

c# - AutoMapper - 尝试映射到奇怪的类型

我有一个非常具体的用例。我有使用 EF6.1.3 生成的实体

我还有一个存储库类,它读取生成的实体类型。在下一层(服务)中,我使用存储库和 AutoMapper 将实体映射到所需的类型。例如,我在 MarketServices 类中有一个 read 方法

使用适当的映射配置,这可以完美地工作。现在,在另一项服务中,我需要使用 MarketServices(多对多关系),因为我想将新公司添加到现有市场的子集。事情从这里开始变得激烈,没有隐藏的细节,我将展示一切:CompanyServices.Create:

错误出现在marketsProvider.Read 行。是的,那将是源类型和目标类型完全相同。如果我选择使用我定义的不同映射,其他一切都有效。我这样定义这个映射:

所以存储库返回了适当的市场实体,但是当我尝试使用 AutoMapper “传递”它们时,我得到了我见过的最奇怪的(如果我理解你为什么要这样做,我会被诅咒)异常:

映射类型:Market_C126EFB65DDE81A0F02B0BF191A2C8B857DA7226E54AB43FB5DF74D3D3A406ED -> ICollection 1 System.Data.Entity.DynamicProxies.Market_C126EFB65DDE81A0F02B0BF191A2C8B857DA7226E54AB43FB5DF74D3D3A406ED -> System.Collections.Generic.ICollection1[[MyProject.Data.Activity, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]

目标路径:Market.Activity.Activity

源值:System.Data.Entity.DynamicProxies.Market_C126EFB65DDE81A0F02B0BF191A2C8B857DA7226E54AB43FB5DF74D3D3A406ED

那么这里到底发生了什么?如果映射的源类型和目标类型相同,为什么 Automapper 不返回原始对象?有没有办法实现这种行为?

谢谢!

我最终使用了找到的部分解决方案我可以让 AutoMapper 有时返回相同的对象吗?我改变了我的阅读功能,如下所示:

我只是将其留在这里,以防其他人偶然发现相同的用例。

0 投票
0 回答
146 浏览

automapper - 不同级别的 Automapper 映射集合

我有源对象,如下所示,

现在,源对象具有 AddressRelation 集合,在该地址列表中将存在.. 意味着员工将有 0-n AddressRelation,每个 AddressRelation 内部将有 0-n 地址。

现在,我只想映射源对象中的地址,并使用 Automapper 将其分配给目标对象的地址集合。意味着迭代每个地址关系,获取地址并分配给目标对象的地址集合。如何使用 AutoMapper 做到这一点?

在此先感谢,普拉卡什。

0 投票
0 回答
106 浏览

c# - 从简单注入器到 Unity 的转换

这个简单的注入器代码如何转化为统一。这是参考this

我相信我们扫描配置文件并循环遍历的第一部分非常简单,我可能是错的。接近的东西

我们将如何使用统一来解决这个问题。

0 投票
3 回答
5787 浏览

c# - 具有动态类型的 AutoMapper:缺少类型映射配置或不支持的映射

答:CreateMissingTypeMaps必须设置为true使动态映射工作。


我有 Entity Framework 的包装器来执行对数据库的查询。我想允许用户只选择必需的属性,但保留实体类型的结果。

这是虚拟代码(不使用 EF,但有同样的问题)

得到这个例外:

我有点卡在这里,因为文档指出 AutoMapper 使用属性名称映射回对象:Dynamic 和 ExpandoObject Mapping

请注意,上面的代码是示例。在我的应用程序中,事情变得有点疯狂,因为我实际上正在使用泛型,例如

...它应该保持这种状态 - 我不知道使用的是什么实体类型。我的期望只是:将属性映射到现有类型,如果缺少,设置default(T)


编辑:我试图从 to 指定映射器dynamicT这里几乎是完整的代码:

...这不会因异常而死,但是结果非常空(所有属性都有default价值。

0 投票
0 回答
1089 浏览

automapper-4 - 版本 4 中的 GetAllTypeMaps 和 AutoMapper.Impl.PropertyAccessor 在哪里?

尝试从 3.2 升级到 4.2 自动映射器,我需要帮助来确定 GetAllTypeMaps 的移动位置,或者如何进行后续操作。我正在抓取所有地图并找到类型为“Command”而忽略“DateCreated”的地图。这是代码:

我假设现在在 4.2 中可能有更简单的方法可以做到这一点?

0 投票
1 回答
944 浏览

c# - 如何使用 Automapper 转换复杂的嵌套对象层次结构

我在两个不同的命名空间下有以下这些类,例如SourceTarget.

映射类:

请注意,Instance该类具有Definitionobject 类型的属性,该属性将保存Class引用,因此嵌套层次结构将从这里开始直到 N 级。我转换得很好,但内部的定义属性Class及其嵌套层次结构对象仍然持有源引用而不是目标。在添加ForMember(t => t.Definition, opt => opt.MapFrom(s => Mapper.Map<Source.Class, Target.Class>((Source.Class)s.Definition)))以某种方式使这种转换工作之后,它已经开始给出异常。

用法:

请帮助我填补空白或缺失的部分。

0 投票
0 回答
130 浏览

c# - Automapper 4.2.1 - 平面模型到抽象基类(TPT 结构)

我在从平面模型映射到抽象基类(TPT 结构)时遇到问题。使用版本 4.2.1 源模型:

目的地型号:

我尝试过的映射

由于抽象类,这个在映射时会出错!

另一个尝试——这个更接近了,但 Destination(ModelA, ModelB, BaseModel) 始终为空

呼叫映射

0 投票
1 回答
282 浏览

c# - Automapper -AutoMapper.AutoMapperMappingException

我尝试了 Automapper,它的映射非常简单,但它不起作用。我正在尝试将一种System.Security.Claims.Claim类型映射到另一种类型的 ClaimItem:

但我总是得到:

AutoMapper.AutoMapperMappingException:缺少类型映射配置或不支持的映射。

映射类型:Claim -> ClaimItem System.Security.Claims.Claim -> CommonAuth.ClaimItem

目标路径:ClaimItem

源值: http: //schemas.xmlsoap.org/ws/2005/05/identity/claims/dateofbirth:05.05.2016

这是我的配置:

0 投票
3 回答
312 浏览

c# - AutoMapper:将许多属性映射为一个

场景如下:我收到一条包含很多变量的消息,数百个。我需要将此写入 Azure 表存储,其中分区键是各个变量的名称,并且值被映射到例如值。

假设有效负载如下所示:

我的 TableEntry 是这样的:

为了将其写入表存储,我需要

我不想复制这 900 次(或者在有效负载消息中碰巧有多少变量;这是一个固定的数字)。

我可以创建一个方法来创建表,但我仍然需要调用 900 次。

我想也许 AutoMapper 可以帮忙。

0 投票
1 回答
1276 浏览

c# - 非静态 AutoMapper 和 ASP.NET MVC

与这个问题类似: 在哪里放置 AutoMapper.CreateMaps?

放置非静态 AutoMapper 初始化的推荐位置在哪里?

存储地图变量的推荐位置在哪里,以便控制器可以访问它?

提前致谢。