问题标签 [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 投票
1 回答
2142 浏览

c# - Automapper 和 Autofac

我正在尝试让 Automapper 在 ASP.Net MVC 应用程序中与 Autofac 配合使用。

我已按照答案中的说明进行操作:Autofac 3 and Automapper

但是它在第一次调用时失败了_mapper.Map<>(...)

Autofac的设置如下:

然后在我的业务层我有这样的服务:

调用_mapper.Map<IEnumerable<Link>, IEnumerable<LinkEntity>> 失败:

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

有什么想法我可能会出错吗?

0 投票
2 回答
657 浏览

c# - 使用自动映射器非规范化对象层次结构

我知道已经提出了类似于这个问题的各种问题,但据我所知(和测试),所提供的解决方案似乎都不适合,所以就这样吧。

我想知道是否可以展平/非规范化对象层次结构,以便使用 AutoMapper 将具有嵌套属性列表的实例映射到某个目标类型的列表。

我有一个看起来像的源类

资料来源:

目的地:

所以我想将这两个源映射到非规范化目标 DenormDistributionInfo 的列表。

IE:

使用 AutoMapper 是否可行/可行,还是我应该放弃并“手动”对其进行非规范化?

0 投票
1 回答
780 浏览

.net - 如何停止 Automapper 将枚举值转换为字符串

我们的代码目前使用非常旧版本的 Automapper (1.1) 到更新的 3.3。自动映射器行为的变化导致了一些问题。

我们有类型的字段,object可以采用引用类型或值的enum值。当字段值是枚举值时,Automapper 会将值映射到字符串表示形式。

请参阅下面的代码示例,它说明了我们的问题 - 有人可以告诉我如何说服 Automapper 将枚举值映射到目标枚举值。

在此先感谢 - 克里斯

0 投票
1 回答
241 浏览

unity-container - “AutoMapper.Configuration”是一个“命名空间”,但用作“类型”

我正在尝试将 AutoMapper 1.1 升级到 AutoMapper 3.3。我当前的代码中有以下语句在 v3.3 中不起作用

container 是一个 Unity 容器。我收到以下错误。

“AutoMapper.Configuration”是一个“命名空间”,但用作“类型”

如何更改此语句以使用 AutoMapper 3.3

0 投票
1 回答
1125 浏览

c# - Automapper-映射到字符串

我尝试使用以下内容创建到字符串的映射CreateMap()

但是当我尝试使用此映射时,出现以下错误:

类型“System.String”没有默认构造函数

这是有道理的,但我一直在阅读,据说这应该有效。我还有其他事情要做吗?

0 投票
2 回答
2492 浏览

c# - 使用 AutoMapper 将十几个分层对象映射到 DTO

我有 12 个实体框架对象的层次结构。

我还为每个实体创建了一个 DTO。

我想通过网络发送 DTO。

我必须使用 DTO 方法。

您将如何使用 Automapper 映射这么多对象?

我必须使用 12 次 AutoMapper.Map 方法吗?

更新

我现在收到此错误:

那不可能吗?我是否必须为类中的复杂类设置额外的映射?

0 投票
1 回答
297 浏览

c# - 将 dto 映射到复杂实体

如何将复杂的 UploadDTO 映射到实体编号?

更新

问题是缺少 UploadDTO 映射,因此它不起作用。但我怎么能说:“以 UploadDTO.Customer TO Customer 为例?”

0 投票
1 回答
1191 浏览

c# - AutoMapper.dll 中出现“AutoMapper.AutoMapperMappingException”类型的未处理异常

我想了解 Automapper 的工作原理。我知道基本思想,在我只是使用所谓ViewModels的发送业务需要的信息之前,从一个或多个数据库表中提取。现在我正在处理一个Automapper使用的遗留项目,也许它提供的不仅仅是这些,但在给定的时刻,我想理解(能够)将我的域对象映射到我的 DTO 对象,反之亦然-versa,我不确定哪一个是正确的方法,因为我做不到。

这是我为测试以下一些基本功能而制作的控制台项目的一个简单示例Automapper

视觉工作室项目

该类DTO_User.cs旨在用于将数据发送到前端。它看起来像这样:

User.cs代表实际域数据的类:

所以我正在尝试做的事情。在我的Program.cs我有一个创建一些对象的静态方法User

然后在我的Main方法中,我尝试将这个模拟数据映射到我的 DTO 列表:

我在这里的前循环中得到了错误:

说我有一些无效的论点。显然,我并没有真正理解 Automapper 是如何实现实际映射的。上面的代码对我来说是最自然的。我知道这是非常基本的,因此实际的解决方案不会太具有挑战性,但如果有人向我解释我的逻辑在哪里出现问题以及工作代码背后的想法是什么,我将不胜感激。

0 投票
1 回答
1076 浏览

c# - 使用自动映射器将复杂的 DTO 映射到实体

我想从地图

映射是在这种方法中创建的,最后我映射数据。

这是 DTO 的结构:

有效的是这些属性正确映射到它们的对应实体:

不起作用的是该属性未映射:

这就是实体的结构:

只有CustomerDevice属性映射到LDTTicket

我的配置有什么问题?

0 投票
2 回答
1483 浏览

asp.net-mvc - 多个用户创建用户时修改了 automapper 错误集合

我收到以下错误,并且仅当多个用户点击同一个按钮时才会出现此错误。任何帮助/想法将不胜感激:

System.InvalidOperationException:集合已修改;枚举操作可能无法执行。生成时间:格林威治标准时间 2015 年 6 月 10 日星期三 07:29:06

AutoMapper.AutoMapperMappingException:

映射类型:用户 -> 用户 ApplicationSecurityManager.Service.User -> ApplicationSecurityManager.Models.User

目标路径:用户

源值:ApplicationSecurityManager.Service.User ---> System.InvalidOperationException:集合已修改;枚举操作可能无法执行。在 System.Collections.Generic.List 1.Enumerator.MoveNextRare() at AutoMapper.TypeMap.<get_AfterMap>b__1(Object src, Object dest) at AutoMapper.Mappers.TypeMapObjectMapperRegistry.PropertyMapMappingStrategy.Map(ResolutionContext context, IMappingEngineRunner mapper) at AutoMapper.Mappers.TypeMapMapper.Map(ResolutionContext context, IMappingEngineRunner mapper) at AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.Map(ResolutionContext context) --- End of inner exception stack trace --- at AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.Map(ResolutionContext context) at AutoMapper.MappingEngine.Map[TDestination](Object source, Action1 opts) 在 ApplicationSecurityManager.UserManager.LoadUser(String username) 在 ApplicationSecurityManager.UserManager.get_AuthenticatedUser() 在 ApplicationSecurityManager.UserManager.IsAuthenticated() 在 ApplicationSecurityManager.Infrastructure.ApplicationSecurityAttribute.OnAuthorization(AuthorizationContext filterContext) 在System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext 控制器上下文,IList1 filters, ActionDescriptor actionDescriptor) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<BeginInvokeAction>b__1e(AsyncCallback asyncCallback, Object asyncState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult1.在 System.Web.Mvc.Async.AsyncResultWrapper.Begin[TResult] 开始(AsyncCallback 回调,对象状态,Int32 超时)(AsyncCallback 回调,对象状态,BeginInvokeDelegate beginDelegate,EndInvokeDelegate 1 endDelegate, Object tag, Int32 timeout) at System.Web.Mvc.Async.AsyncResultWrapper.Begin[TResult](AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate1 endDelegate,对象标记)在 System.Web。 Mvc.Controller.<>c__DisplayClass1d.b__17(AsyncCallback asyncCallback,Object asyncState)在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult 1.Begin(AsyncCallback callback, Object state, Int32 timeout) at System.Web.Mvc.Async.AsyncResultWrapper.Begin[TResult](AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate1 endDelegate,对象标记,Int32 超时)在 System.Web.Mvc.Controller.BeginExecuteCore(AsyncCallback 回调, 对象状态) 在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult1.Begin(AsyncCallback callback, Object state, Int32 timeout) at System.Web.Mvc.Async.AsyncResultWrapper.Begin[TResult](AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate1 endDelegate,对象标记,Int32 超时)在 System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback 回调,对象状态,BeginInvokeDelegate beginDelegate,EndInvokeDelegate endDelegate,对象标记)在 System.Web.Mvc.Controller.BeginExecute(RequestContext requestContext , AsyncCallback 回调, 对象状态) 在 System.Web.Mvc.MvcHandler.<>c__DisplayClass8.b__2(AsyncCallback asyncCallback, Object asyncState) 在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult1.Begin(AsyncCallback callback, Object state, Int32 timeout) at System.Web.Mvc.Async.AsyncResultWrapper.Begin[TResult](AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate1 endDelegate, Object tag, Int32 timeout) at System.Web.Mvc.Async.AsyncResultWrapper.Begin(AsyncCallback callback, Object state, BeginInvokeDelegate beginDelegate, EndInvokeDelegate endDelegate, Object tag) at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext , AsyncCallback 回调, 对象状态) 在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步骤, Boolean& completedSynchronously)

这是我认为后映射是问题的构造函数,但是在调试时我没有收到错误。

依赖注入映射:

在 中saveUserResponse,错误被抛出。