问题标签 [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.
automapper - 将自动映射器映射到现有对象并使用 nsubstitute 时如何进行单元测试
我正在使用 Automapper 6.2.1 并通过它删除了所有静态变量,而我正在注入IMapper
.
我正在使用 NSubstitute 进行模拟。
我有一些代码在其中映射两个现有对象。
我的映射将替换Value2
为person1
.
此后我使用person1
修改后的值。
是否可以从我的模拟中“返回”一个不同的 person1 ?如果可能的话,我该怎么做?
编辑
是的,我的问题是如何_mapper
正确地模拟我并使用 NSubstitute “返回”不同的 person1 (通过 ref)。
person1 是一个引用对象,这意味着在实际实现中来自 person2 的 Value2 将替换 person1 中的 Value2。但在我的单元测试中,我未能模拟这种情况。
c# - Automapper:我需要为实体的每个副本调用“CreateMap” - DTO?
我正在使用 Automapper (6.2.1) 转换实体对象的层次结构:
到相应的 DTO 对象层次结构:
我已经像这样映射了所有转换:
每次我创建一个实体和一个 DTO 时,我都需要CreateMap
向我的配置文件添加一个新调用。
没有更紧凑的方法可以做到这一点?
c# - 如何使用 AutoMapper 创建复杂的映射?
我有以下实体模型
然后我有以下视图模型,我想告诉 AutoMapper 将Blog
对象映射到属性需要来自的BlogViewModel
通知中,并且每个都需要转换为使用有机约定。CategoryName
Blog.Category.Name
Comment
Blog.Comments
CommentViewModel
我目前在运行时使用反射为任何实现ICustomMap
接口的类设置映射。请阅读该Transfer(IMapper mapper)
方法的代码中的注释。
最后这是我的CommentViewModel
如何告诉 AutoMapper 如何映射 CategoryName 和 Comments?
更新
这是我将如何创建映射。我将有以下 3 个接口
然后在 Global.cs 文件中
我会Run
在启动时执行该方法。基本上,此方法将扫描程序集并注册我想使用接口注册的类。
c# - 如何触发 AutoMapper 使用 linq 语法映射模型?
我正在尝试使用 AutoMapper 6.3 允许我将模型自动映射到视图模型中。
首先,我像这样注册了我的AutoMapper
实例IUnitContainer
现在,在我的控制器中,我想从数据库中提取一个模型,然后我想将它映射/投射到我的视图模型中。
我尝试执行以下操作
但我似乎找不到ProjectTo
我认为它将成为AutoMapper
项目一部分的扩展。
如果我AutoMapperProfile
已经创建了映射,那么投影 viewModel 的正确方法是什么?
c# - 如何在运行时将变量传递给 AutoMapper 进行动态计算?
我正在尝试使用 AutoMapper 6.3 允许我将模型自动映射到视图模型中。
首先,我IUnitContainer
像这样注册了我的 AutoMapper 实例
现在,在我的控制器中,我想从数据库中提取一个模型,然后我想将它映射/投射到我的视图模型中。
我尝试执行以下操作
但是,我的视图模型需要知道当前用户的时区才能将时间从 UTC 转换为本地时区。不知何故,我需要能够传递Passport.User.TimeZone
给 ViewModel 才能处理日期时间转换?
这是我尝试投影viewModel的方式
c# - 无法在 AutoMapper 中配置 ReverseMap
我是 AutoMapper 新手。我的映射没有按预期工作,我确定我做错了什么,但无法弄清楚。对不起,如果这个问题令人困惑,但我会尽力澄清。假设我们有三个类:
现在,我想设置我的映射,以便 ContactInfo1 可以映射到 ContactInfo2 和从 ContactInfo2 映射。然后我希望能够映射 Person1 -> ContactInfo2 (这可能看起来很奇怪,但无论如何我都需要这样做)。我尝试了以下映射配置:
对于测试数据:
我执行以下操作:
这不会给我任何错误,但 contactInfo2Test.AnotherName 是空的。请指教!谢谢。
请注意,我意识到我可以去:
然后我会重新映射 Contact1->Contact2,在更复杂的情况下,我真的想避免这种情况。
automapper - Automapper UseDestinationValue() 或 Ignore() 都将整数目标值设置为 0
首先,有几个类似的问题,我试过到处查看它们,但没有一个起作用。
我有这个映射代码
这是我的目标对象结构。
正在发生的事情是在任何情况下都需要映射现有的Id
需求,而不是被目标覆盖,因为实体框架需要更新实体。但是,无论何时发生映射,该Id
属性都会被覆盖为零 (0)。我尝试使用opt.Ignore()
,opt.UseDestinationValue()
但没有一个保留Id
目标值。
这是个人资料 -
automapper-6 - 如何使 Automapper 根据字段的值忽略记录
您好我正在尝试使用 Automapper 6 并希望忽略基于字段中特定值的记录。我希望有一种方法可以跳过这样的记录:
有没有办法做到这一点 ?谢谢
automapper - AutoMapper 内联映射抛出映射器未初始化
我正在尝试在 API 包装类库项目中使用 AutoMapper 从 API 模型映射到我们的域模型。在查看 AutoMapper 文档时,我遇到了内联映射功能。
文档说:
AutoMapper 动态创建类型映射(6.2.0 中的新功能)。当您第一次调用 Mapper.Map 时,AutoMapper 将创建类型映射配置并编译映射计划。随后的映射调用将使用已编译的映射。
所以我在我的包装类库中编写了以下代码行:
基本上只是试图将我从 API 获得的 Session 对象映射到我们的 Media 对象中。但这会引发以下错误:
映射器未初始化。使用适当的配置调用初始化。如果您尝试通过容器或其他方式使用映射器实例,请确保您没有对静态 Mapper.Map 方法的任何调用,并且如果您使用 ProjectTo 或 UseAsDataSource 扩展方法,请确保传入适当的 IConfigurationProvider实例。
我的印象是内联映射完全应该绕过必须为 AutoMapper 初始化和定义配置?我错了吗?
另外,如果我确实错了,那么您应该如何在类库中配置和初始化 AutoMapper,使其只发生一次?我希望库是独立的,这意味着我不希望使用库的程序员必须在他的项目中配置 AutoMapper 才能使库正常工作。