问题标签 [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# - 为表达式创建默认值[] 在运行时只知道类型
例如,我想在此重载上动态调用 ProjectTo:
像这样
这是我要调用的重载
基于此链接: https ://github.com/AutoMapper/AutoMapper/issues/2234#event-1175181678
更新
当我有这样的参数时
并将其传递给这样的函数:
但是,当membersToExpand参数为null时,它会抛出异常 No generic method 'ProjectTo' on type 'AutoMapper.QueryableExtensions.Extensions' 与提供的类型参数和参数兼容。如果方法是非泛型的,则不应提供类型参数
所以让我澄清一下问题:
'membersToExpand' 必须不为空(好吧,我知道),当它不为空时,'Expression.Call' 可以找到合适的重载并且它会成功但问题是当'membersToExpand' 为空时,我必须创建默认的“membersToExpand”,我必须动态创建它,我不能像这样创建它
如何动态创建:
当我只知道'typeof(TDto)'时?
要重现问题只需复制并粘贴,然后运行:
真挚地。
c# - Automapper 映射递归菜单树
现在我正在尝试将我的实体映射到我的 dtos,但它一直在失败。
我看到了许多与此相关的问题,但没有一个具有“干净”的映射方式。我是这样开始的...
映射器应该如何知道要映射到哪个父元素?
任何帮助,将不胜感激。
c# - 使用最新版本的 Automapper(6.1.1) 忽略所有具有不同类型和相同名称的成员的映射
如果某些属性具有相同名称的不同类型,我如何忽略映射?默认情况下它会抛出错误。我为旧版本的 automapper 找到了一些答案,但它们不适用于最新版本。
例如,一个属性是字符串,另一个是 bool,但它们都具有相同的名称。我想要的行为是忽略它们(而不是尝试映射它们)。
automapper - 无法识别来自 automapper.collection 的添加集合映射器
我尝试使用 automapper.collection 但在 Mapper.Initialize 方法中无法识别 AddCollectionMappers 方法
我正在使用 .net 4.7、automapper 6.1.1、automapper.collection 3.1.1
谢谢你。
c# - AutoMapper:ForMember() 和 ForPath() 有什么区别?
我正在阅读 AutoMapper ReverseMap()
,但我无法理解 和 之间的ForMember()
区别ForPath()
。此处描述了实现。根据我的经验,我实现了ForMember()
.
请参阅我已配置反向映射的以下代码:
这是工作。
问题
做同样的事情,或者我什么时候应该ForMember
使用over ?ForPath
ForPath()
ForMember()
c# - 所有从特定类继承的通用 AutoMapper 映射
我的大多数视图模型都继承自一个名为EncryptedBaseViewModel
. 此方法对 ID 进行加密,因此用户看不到数据库敏感信息。
我想创建一个 AutoMapper 映射来处理映射到EncryptedBaseViewModel
. 获取源 ID 值并将其传递给目标 SetId 方法。
视图模型类
自动映射器示例
我伪造了这个例子,它在映射后传递了值,因为不确定方法。 欢迎在这里提出建议。
问题
- 是否可以制作通用映射器。如果是这样,我应该在
AnySource
指定的地方放什么? - 映射是否会像任何其他特定映射一样运行?- 我想要它。
我试图避免必须为每个实体编写相同的映射,因为这可能会导致人们忘记这样做的情况。
c# - Automapper 无法使用 NamingConvention 进行反向映射
我正在使用 Automapper 6.1.1。并且需要使用反向映射。我发现了 2004 年的错误报告并已关闭。但在我的例子中不起作用,财产c12
没有价值。那么我如何在这个例子中使用反向映射呢?
c# - 自动映射器配置与字段名称中的转换
为什么示例中的此映射未正确映射。当我将后缀 CAST 更改为其他内容 (CAST1) 时,它会正确映射。我应该如何设置映射器以使用后缀 CAST 正确映射?
c# - Automapper 将 2 个类配置为 1 个
我有以下数据库(基础设施)类:
以及以下 DTO(域)类:
我编写了以下 Automapper 规则来解决它:
我收到一个错误:
表达式 'c => c.Type.Name' 必须解析为顶级成员,而不是任何子对象的属性。在子类型或 AfterMap 选项上使用自定义解析器。
更新
我重写了地图:
但现在我得到一个错误:
类型映射配置:ApplicationDriverEquipmentTractorDomain -> ApplicationDriverEquipment Domain.POCO.Application.ApplicationDriverEquipmentTractorDomain -> Infrastructure.Asset.ApplicationDriverEquipment
属性:类型 ---> AutoMapper.AutoMapperMappingException:缺少类型映射配置或不支持的映射。
映射类型:
字符串 -> ApplicationDriverEquipmentType
System.String -> Infrastructure.Asset.ApplicationDriverEquipmentType
似乎,我不明白如何正确映射它
c# - Automapper - 将抽象映射到抽象
源类:
然后我想将它映射到目标类中的 Equipments 属性,该属性描述如下:
我写了以下自动映射器规则:
但它不起作用。为什么?