问题标签 [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.
c# - AutoMapper:从 4.x 到 6.2 的语法问题
我已将 AutoMapper 从 4.2.x 更新到 6.2.0。
我收到了一些破坏性的语法编译器错误:
我收到这条消息:
有任何想法吗?
c# - 配置文件的 Automapper 问题
我使用 Autofac 和 Automapper,我有以下域类:
这是我的模型:
我使用以下配置文件:
这就是我使用 AutoFac 的方式:
当我尝试从模型映射到域类时遇到问题(保存数据)
我尝试使用Memberlist.Source
and 对于我所做的每个属性:
我尝试使用.ForAllOtherMembers(opt => opt.Ignore())
它起作用的唯一方法是如果我调用其他 2 个模型的 Mapper.Map,例如,如果我想映射AlumnoModel
到Alumnos
:
但为了工作,我必须添加以下几行:
这是有道理的,因为我必须映射它们。
当我这样做时,它又引发了一个错误:
发生这种情况是因为表(EF 5)之间存在 1 到 n 的关系,因此Turnos
具有(域类)的 HashSet Alumnos
,但我希望忽略此属性,因为我的模型中没有它。
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
,PageSize
和TotalCount
都正确设置在 上comments
,但它包含 0 个项目,所以我必须这样做:
我的期望是因为 automapper 可以将 List 映射到 List,一旦我添加了 PagedLists 之间的开放泛型映射,它就可以在这里做同样的事情。为什么它不自动映射列表项?它可以?
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();
?我错过了什么?
c# - Automapper 将简单对象映射到更复杂的嵌套类型
我正在重构并利用 AutoMapper (6.2.1) 来帮助我们格式化符合特定合同的 API 返回。我们在内部使用的 DTO 对象旨在简化我们在以更复杂的类型返回数据之前对数据的理解。
问题:我有一个 DTO,List<T>
其中我需要将 的属性之一<T>
映射到更复杂类型的集合。这实际上非常简单,但问题是,如果我试图以更复杂的类型映射到的集合实际上位于另一个“更高”的集合中怎么办。本质上,我在一个集合问题中的一个集合中。
例如:DTO
我需要映射到并且无法控制的更复杂的对象
本质上,我需要通过这个可怕的嵌套对象链来设置Description
我的简单和映射ItemDescriptionDTO
UnparsedItemDescription
我能够正确地从UnparsedItemDescription
一路映射到,ComplexItemDescription
但比这更高的Complex
东西给我带来了一些麻烦。
这是我到目前为止的映射:
我需要,ComplexThing
因为该类中还有其他属性被返回,所以我不能仅仅返回说 aComplexItemDescription
我将不胜感激您可以提供的帮助。诚然,我对 Automapper 的工作原理有基本的了解(我正在努力变得更好),但这真的让我感到震惊。
c# - 如何将带有字典和外部参数的 POCO 映射到新的 EF 模型
我正在研究一种解决方案,该解决方案需要将 POCO 转换为我与 Entity Framework Code First 一起使用的具体数据模型。
原始 POCO 如下所示:
目标 EF 数据模型类如下所示:
这就是我此时得到的:
我会感谢你的帮助
asp.net-mvc - Automapper 自定义映射问题
我是使用 6.2.2 版的 Automapper 的第一次用户。我试图找出如何将下面的 DB 实体映射到自定义 DTO。
以下是我的映射配置文件。
我还尝试创建自己的自定义命名约定。下面是代码,但它不起作用。
我尝试了文档中的注释行,但似乎不起作用。我有 15 个以上包含 _ 但 DTO 类没有的类似数据库实体。我正在寻找一种方法来使用一些解析器来修复所有实体。
谢谢
c# - 自动映射来自不同语言的对象
我正在尝试找到一种方法来进行映射配置,该配置可以在列表中完全不同的名称之间进行映射。
我们的数据库是荷兰语的,并且脚手架工具(如scaffold-dbcontext)保留了DTO 的表名。在我们的 db 相关层之外,我们更喜欢英语名词。
说我有以下
鉴于我知道以下单词映射
那么是否可以将 AutoMapper 配置为能够这样映射:
c# - 将列表缩减为具有运行时参数的字段
是否可以配置 Automapper,以便它可以根据运行时参数从集合映射到单个实例?
在我们的应用程序中,我们的实体具有每种语言的标签。根据当前用户的偏好,应该显示一个值。
鉴于我在映射实体时知道当前的用户文化,我是否可以配置 Automapper 以便它可以从 DepartmentEntity 映射到 DepartmentViewModel?
就像是
像这样的其他答案似乎想要传递一个参数以直接用作目标值。我想将其用作将列表减少为单个字段的一种方式。