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

c# - 成员条件的自动映射器

我正在使用自动映射器 6.1,我想将一些值从一个对象映射到另一个对象,但有一个条件是这些值不能为空,并且如果我可以轻松使用 ForAllMembers 条件,则不应该映射所有对象属性。我想做的是:

也试过

换句话说,对于我在自动映射器配置中定义的每个属性,我想检查它是否为空,以及它是否为来自 x 的空值。

调用此类自动映射器配置如下所示:

0 投票
0 回答
60 浏览

asp.net-mvc - ASP.NET MVC 查看类和 null

我有一个带有嵌套视图模型类的复杂结构:

而且每个嵌套类也可以有嵌套类......

问题是这些类中的许多没有任何必填字段,因此,客户可以将某个类的所有字段留空。结果,控制器得到这样的对象:

在此处输入图像描述

AutoMapper 将此类映射到域(然后是基础架构)类,并且每个实体在数据库中保存为适当表中的不同记录。但我不想保存空记录,我不想将它们映射到域类。怎么做?验证每个对象的所有属性是否为 null 还是有更强大的解决方案?

0 投票
2 回答
445 浏览

c# - Automapper - exclude some objects from mapped collection

I have the following map rules:

then I want to map ViewModels.ApplicationDriverFormVM to ApplicationDriverDomain, both are have Accidents property, which are appropriate collections for each type.

And I want to exclude (not map) all records, which are not satisfied some conditions I try to write the following code:

where GetNotNullFromCollection is:

but it says me:

Unable to cast object of type 'System.Collections.Generic.List1[Web.ViewModels.ApplicationDriverAccidentFormVM]' to type 'System.Collections.Generic.List1[System.Object]'.

Why and how to do it?

0 投票
2 回答
1553 浏览

c# - AutoMapper - 根据条件映射到派生对象

我想将源类映射到派生(从抽象)目标类取决于某些属性的值。

我有以下源类:

我想映射到以下类,取决于 Type 参数:

我尝试这样做:

但我得到一个错误:

"错误映射类型。\r\n\r\n映射类型:\r\nApplicationDriver -> ApplicationDriverDomain\r\nInfrastructure.Asset.ApplicationDriver -> Domain.POCO.Application.ApplicationDriverDomain\r\n\r\n类型映射配置: \r\nApplicationDriver -> ApplicationDriverDomain\r\nInfrastructure.Asset.ApplicationDriver -> Domain.POCO.Application.ApplicationDriverDomain\r\n\r\n属性:\r\n设备"

0 投票
1 回答
327 浏览

c# - 在映射期间停止 AutoMapper 初始化数据模型属性

我有一个 ClientDocument 数据模型和映射如下:

和一个 ClientDocumentViewModel 如下:

当我将 ClientDocumentViewModel 传递给映射器并将视图模型映射到数据模型时,使用:

ViewModel 的属性都正确映射到数据模型,但是映射器也在初始化 ClientProfile 的实例,该实例正在使用实体框架停止插入。

我有其他使用相同映射模式的数据模型和视图模型。当我调试它们时,ClientProfile 属性没有被初始化并且数据实体被成功插入。我浏览并比较了数据模型、实体框架映射、数据库上的外键和映射配置文件,它们看起来都一样。

有谁知道为什么会发生这种情况?

0 投票
1 回答
2739 浏览

c# - Automapper 地图 ICollection单个具体对象

如何使用 automapper 将对象集合映射到具体类型的单个对象?

样本:

模型:

DTO:

我尝试使用以下映射配置将 SystemOptionsModel 的 ICollection 映射到一个 SystemOptionsDto:

结果,我得到了一个 DTO 列表,其中源集合中的每个项目都有一个项目。

我也试过这个:

结果也是一个 SystemOptionsDto 列表,而不是单个 SystemOptionsDto。

0 投票
1 回答
245 浏览

automapper - 集合中的第一项和单个属性之间的 AutoMapper 双向映射

我正在使用 AutoMapper 6。考虑以下类:

where有名为andFlattenableClass的属性。如您所见,源有一个集合,但目标只需要第一个,因为虽然我们的数据库允许电子邮件地址的集合,但应用程序将支持一个。我相信我可以像这样安排这个映射:Prop1Prop2EmailAddressSourceDestination

但是,不出所料,如果我再调用ReverseMap()它,它不知道如何映射EmailAddress1EmailAddresses集合。有没有办法让它映射EmailAddress1回一个EmailAddress并将其添加到EmailAddresses集合中?

0 投票
1 回答
371 浏览

c# - 将实体自动映射到模型

我试图映射这些,但我得到了

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

0 投票
1 回答
298 浏览

vb.net - AutoMapper 初始化上的 Lambda 将警告显示为函数,但正常显示为子

我将 AutoMapper V3.3.1 更新到 V6.1.1,令我惊讶的是,在将所有 CreateMaps() 放入配置文件之后,它实际上一开始就完美运行——对我来说几乎是可怕的。

我遇到的问题是它正在使用 AutoMapper 文档中建议的以下代码:

但是代码发出警告:

如果我向 Lambda 添加返回值,例如:

然后我收到以下错误:

现在 - 如果我把它变成一个 Sub 而不是一个函数,它一切正常,没有这样的错误:

我知道这可能会令人头疼,但我正在尝试遵循文档,并且害怕将其发布到生产中,因为我可能会遗漏一些东西。

编辑:

我选择分解多行 lambda 以使其对我来说更容易一些,这也很方便地利用 IntelliSense 选项以供将来增强。虽然它可能不是“最酷”的代码,但我发现它非常易读。

0 投票
1 回答
748 浏览

c# - 没有设置器的自动映射器嵌套集合

我在 LinqPad(C# 程序)上运行了这个代码片段,其中已经包含 Automapper Nuget 包 6.1.1:

正如你所看到的,我们在设置嵌套的 Collection 时遇到了问题(根本没有 Setter)。从理论上讲,这应该可以正常运行,但它不会向集合中添加任何元素。

如果我们更改集合属性添加一个公共设置器,那么一切都很好。

如何在不添加公共设置器或设置器的情况下获得嵌套集合?