问题标签 [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# - 成员条件的自动映射器
我正在使用自动映射器 6.1,我想将一些值从一个对象映射到另一个对象,但有一个条件是这些值不能为空,并且如果我可以轻松使用 ForAllMembers 条件,则不应该映射所有对象属性。我想做的是:
也试过
换句话说,对于我在自动映射器配置中定义的每个属性,我想检查它是否为空,以及它是否为来自 x 的空值。
调用此类自动映射器配置如下所示:
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.List
1[Web.ViewModels.ApplicationDriverAccidentFormVM]' to type 'System.Collections.Generic.List
1[System.Object]'.
Why and how to do it?
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设备"
c# - 在映射期间停止 AutoMapper 初始化数据模型属性
我有一个 ClientDocument 数据模型和映射如下:
和一个 ClientDocumentViewModel 如下:
当我将 ClientDocumentViewModel 传递给映射器并将视图模型映射到数据模型时,使用:
ViewModel 的属性都正确映射到数据模型,但是映射器也在初始化 ClientProfile 的实例,该实例正在使用实体框架停止插入。
我有其他使用相同映射模式的数据模型和视图模型。当我调试它们时,ClientProfile 属性没有被初始化并且数据实体被成功插入。我浏览并比较了数据模型、实体框架映射、数据库上的外键和映射配置文件,它们看起来都一样。
有谁知道为什么会发生这种情况?
c# - Automapper 地图 ICollection单个具体对象
如何使用 automapper 将对象集合映射到具体类型的单个对象?
样本:
模型:
DTO:
我尝试使用以下映射配置将 SystemOptionsModel 的 ICollection 映射到一个 SystemOptionsDto:
结果,我得到了一个 DTO 列表,其中源集合中的每个项目都有一个项目。
我也试过这个:
结果也是一个 SystemOptionsDto 列表,而不是单个 SystemOptionsDto。
automapper - 集合中的第一项和单个属性之间的 AutoMapper 双向映射
我正在使用 AutoMapper 6。考虑以下类:
where有名为andFlattenableClass
的属性。如您所见,源有一个集合,但目标只需要第一个,因为虽然我们的数据库允许电子邮件地址的集合,但应用程序将支持一个。我相信我可以像这样安排这个映射:Prop1
Prop2
EmailAddress
Source
Destination
但是,不出所料,如果我再调用ReverseMap()
它,它不知道如何映射EmailAddress1
回EmailAddresses
集合。有没有办法让它映射EmailAddress1
回一个EmailAddress
并将其添加到EmailAddresses
集合中?
c# - 将实体自动映射到模型
我试图映射这些,但我得到了
AutoMapper.AutoMapperMappingException:“缺少类型映射配置或不支持的映射。”
vb.net - AutoMapper 初始化上的 Lambda 将警告显示为函数,但正常显示为子
我将 AutoMapper V3.3.1 更新到 V6.1.1,令我惊讶的是,在将所有 CreateMaps() 放入配置文件之后,它实际上一开始就完美运行——对我来说几乎是可怕的。
我遇到的问题是它正在使用 AutoMapper 文档中建议的以下代码:
但是代码发出警告:
如果我向 Lambda 添加返回值,例如:
然后我收到以下错误:
现在 - 如果我把它变成一个 Sub 而不是一个函数,它一切正常,没有这样的错误:
我知道这可能会令人头疼,但我正在尝试遵循文档,并且害怕将其发布到生产中,因为我可能会遗漏一些东西。
编辑:
我选择分解多行 lambda 以使其对我来说更容易一些,这也很方便地利用 IntelliSense 选项以供将来增强。虽然它可能不是“最酷”的代码,但我发现它非常易读。
c# - 没有设置器的自动映射器嵌套集合
我在 LinqPad(C# 程序)上运行了这个代码片段,其中已经包含 Automapper Nuget 包 6.1.1:
正如你所看到的,我们在设置嵌套的 Collection 时遇到了问题(根本没有 Setter)。从理论上讲,这应该可以正常运行,但它不会向集合中添加任何元素。
如果我们更改集合属性添加一个公共设置器,那么一切都很好。
如何在不添加公共设置器或设置器的情况下获得嵌套集合?