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

asp.net - Automapper - 映射器已初始化错误

我在我的 ASP.NET MVC 5 应用程序中使用 AutoMapper 6.2.0。

当我通过控制器调用我的视图时,它会显示所有内容。但是,当我刷新该视图时,Visual Studio 显示错误:

System.InvalidOperationException: '映射器已经初始化。您必须为每个应用程序域/进程调用一次初始化。

我只在一个控制器中使用 AutoMapper。尚未在任何地方进行任何配置,也未在任何其他服务或控制器中使用 AutoMapper。

我的控制器:

控制器内的错误:

在此处输入图像描述

我的模型类:

我的视图模型类:

0 投票
0 回答
74 浏览

c# - AutoMapper:从 4.x 到 6.2 的语法问题

我已将 AutoMapper 从 4.2.x 更新到 6.2.0。

我收到了一些破坏性的语法编译器错误:

我收到这条消息:

有任何想法吗?

0 投票
1 回答
477 浏览

c# - 配置文件的 Automapper 问题

我使用 Autofac 和 Automapper,我有以下域类:

这是我的模型:

我使用以下配置文件:

这就是我使用 AutoFac 的方式:

当我尝试从模型映射到域类时遇到问题(保存数据)

我尝试使用Memberlist.Sourceand 对于我所做的每个属性:

我尝试使用.ForAllOtherMembers(opt => opt.Ignore())

它起作用的唯一方法是如果我调用其他 2 个模型的 Mapper.Map,例如,如果我想映射AlumnoModelAlumnos

但为了工作,我必须添加以下几行:

这是有道理的,因为我必须映射它们。

当我这样做时,它又引发了一个错误:

发生这种情况是因为表(EF 5)之间存在 1 到 n 的关系,因此Turnos具有(域类)的 HashSet Alumnos,但我希望忽略此属性,因为我的模型中没有它。

0 投票
0 回答
62 浏览

c# - Automapper 6 自定义列表到自定义列表2不映射项目

我有两种PagedList<T>类型。Data.PagedList<T>实现IList<T>ViewModels.PagedList<T>继承List<T>。我正在尝试从映射Data.PagedList<Comments>ViewModels.PagedList<CommentsVM>. 我有两个 PagedLists 的开放通用映射和 Comments -> CommentsVM 的映射,但映射后,ViewModels.PagedList<CommentsVM>它的所有属性都已设置,但它包含 0 个项目。

Data.PagedList<T>

ViewModels.PagedList<T>

映射配置:

映射:

此时PageNumber,PageSizeTotalCount都正确设置在 上comments,但它包含 0 个项目,所以我必须这样做:

我的期望是因为 automapper 可以将 List 映射到 List,一旦我添加了 PagedLists 之间的开放泛型映射,它就可以在这里做同样的事情。为什么它不自动映射列表项?它可以?

0 投票
2 回答
723 浏览

c# - 在 ASP.NET MVC 应用程序中初始化 AutoMapper v6 时出错

我在项目中重复这些代码。考虑创建一个通用接口 IMapper 以便我可以在需要时调用它。

我创建的解决方案是

它不起作用。问题是我不能以这种方式将源模型和目标模型作为参数传递。如何解决这个问题?

更新1:

正如@12seconds 提到的,我开始MapperConfigration初始化Global.asax.cs

在 App_Start 文件夹中,我创建了

Global.asax.cs

然后我试着AutoMapperConfiguration.Configure();在几个地方打电话。当我开始运行应用程序时,我收到了相同的错误消息

映射器未初始化。使用适当的配置调用初始化。如果您尝试通过容器或其他方式使用映射器实例,请确保您没有对静态 Mapper.Map 方法的任何调用,并且如果您使用 ProjectTo 或 UseAsDataSource 扩展方法,请确保传入适当的 IConfigurationProvider实例。

我想在哪里打电话AutoMapperConfiguration.Configure();?我错过了什么?

0 投票
0 回答
634 浏览

c# - Automapper 将简单对象映射到更复杂的嵌套类型

我正在重构并利用 AutoMapper (6.2.1) 来帮助我们格式化符合特定合同的 API 返回。我们在内部使用的 DTO 对象旨在简化我们在以更复杂的类型返回数据之前对数据的理解。

问题:我有一个 DTO,List<T>其中我需要将 的属性之一<T>映射到更复杂类型的集合。这实际上非常简单,但问题是,如果我试图以更复杂的类型映射到的集合实际上位于另一个“更高”的集合中怎么办。本质上,我在一个集合问题中的一个集合中。

例如:DTO

我需要映射到并且无法控制的更复杂的对象

本质上,我需要通过这个可怕的嵌套对象链来设置Description我的简单和映射ItemDescriptionDTOUnparsedItemDescription

我能够正确地从UnparsedItemDescription一路映射到,ComplexItemDescription但比这更高的Complex东西给我带来了一些麻烦。

这是我到目前为止的映射:

我需要,ComplexThing因为该类中还有其他属性被返回,所以我不能仅仅返回说 aComplexItemDescription

我将不胜感激您可以提供的帮助。诚然,我对 Automapper 的工作原理有基本的了解(我正在努力变得更好),但这真的让我感到震惊。

0 投票
0 回答
52 浏览

c# - 如何将带有字典和外部参数的 POCO 映射到新的 EF 模型

我正在研究一种解决方案,该解决方案需要将 POCO 转换为我与 Entity Framework Code First 一起使用的具体数据模型。

原始 POCO 如下所示:

目标 EF 数据模型类如下所示:

这就是我此时得到的:

我会感谢你的帮助

0 投票
0 回答
274 浏览

asp.net-mvc - Automapper 自定义映射问题

我是使用 6.2.2 版的 Automapper 的第一次用户。我试图找出如何将下面的 DB 实体映射到自定义 DTO。

以下是我的映射配置文件。

我还尝试创建自己的自定义命名约定。下面是代码,但它不起作用。

我尝试了文档中的注释行,但似乎不起作用。我有 15 个以上包含 _ 但 DTO 类没有的类似数据库实体。我正在寻找一种方法来使用一些解析器来修复所有实体。

谢谢

0 投票
1 回答
260 浏览

c# - 自动映射来自不同语言的对象

我正在尝试找到一种方法来进行映射配置,该配置可以在列表中完全不同的名称之间进行映射。

我们的数据库是荷兰语的,并且脚手架工具(如scaffold-dbcontext)保留了DTO 的表名。在我们的 db 相关层之外,我们更喜欢英语名词。

说我有以下

鉴于我知道以下单词映射

那么是否可以将 AutoMapper 配置为能够这样映射:

0 投票
1 回答
65 浏览

c# - 将列表缩减为具有运行时参数的字段

是否可以配置 Automapper,以便它可以根据运行时参数从集合映射到单个实例?

在我们的应用程序中,我们的实体具有每种语言的标签。根据当前用户的偏好,应该显示一个值。

鉴于我在映射实体时知道当前的用户文化,我是否可以配置 Automapper 以便它可以从 DepartmentEntity 映射到 DepartmentViewModel?

就像是

像这样的其他答案似乎想要传递一个参数以直接用作目标值。我想将其用作将列表减少为单个字段的一种方式。