问题标签 [valueinjecter]
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 - automapper 可以从扁平对象创建对象图吗?
Automapper 可以将平面对象映射到复杂对象图吗?
将 PersonDto.BirthCertificateFatherName 映射到 Person.BirthCertificate.FatherName
c# - 从 IDataReader 映射时,我可以将 AutoMapper 配置为从自定义列名中读取吗?
映射配置的伪代码(如下)是不可能的,因为 lambda 只允许我们访问 Type IDataReader,而在实际映射时,AutoMapper 将进入每个IDataRecord
while的每个“单元格” IDataReader.Read() == true
:
谁能想到在运行时使用 AutoMapper 配置或仅满足以下要求的其他一些动态方法来做到这一点。
要求是支持任何IDataReader
可能具有与属性名称不匹配的列名MyDTO
并且没有我可以依赖的命名约定的传入。IDataReader
相反,我们会在运行时要求用户将预期的列名与在via中找到的实际列名进行交叉引用IDataReader.GetSchemaTable()
。
c# - 如何使用 AutoMapper 深度克隆包含 IList 属性的对象
我正在尝试使用 AutoMapper 深度克隆以下类:
该Clone
方法适用于 MainData 属性,但似乎只对 Details 列表进行了浅拷贝。我尝试添加.ForMember(d => d.Details, o => o.UseDestinationValue())
,但这根本不会复制详细信息列表。如何将详细信息列表也进行深度克隆,即最终得到两个完全独立的对象,包括所有列表项?
更新:我需要排除 Id 属性,因为我将这些对象与 NHibernate 一起使用,所以不确定 Serializable 解决方案是否会这样做。
UPDATE2:修改了上面的代码来克隆IList。这似乎工作正常,因为我可以排除使 NHibernate 认为它已经被保存的属性。
enums - AutoMapper 字符串到枚举描述
鉴于要求:
取一个对象图,根据第二个字符串属性的处理值设置所有枚举类型属性。约定规定源字符串属性的名称将是后缀为“Raw”的枚举属性的名称。
通过处理我们的意思是我们需要去除指定的字符等
我查看了自定义格式化程序、值解析器和类型转换器,但似乎没有一个可以解决这个问题?
我们希望使用 AutoMapper 而不是我们自己的反射例程,原因有两个:a)它在项目的其余部分中广泛使用,b)它为您提供递归遍历 ootb。
- 例子 -
给定下面的(简单)结构,并且:
我们希望 tmp2 的 MappedCountry 枚举为 Country.UnitedStates,而 Person 属性的性别为 Gender.Male。
谢谢
c# - 是否可以使用自动映射器将 IDataReader 映射到嵌套 DTO?
我希望我可以将平面数据读取器映射到嵌套 DTO。运行以下代码,名称为空。我做错了什么还是这不可能?
asp.net-mvc - 使用 Automapper 将字符串映射到枚举
我的问题是从数据库返回的 Linq2Sql 对象中为 Viewmodel 补水。我们已经在一些领域做到了这一点,并为它设计了一个很好的分层模式,但最新的项目要求使用一些枚举,这引起了各方的头痛。目前我们从数据库中拉回然后使用 Automapper 水合(或展平)到我们的视图模型中,但是模型中的枚举似乎会导致 Automapper 出现问题。我已经尝试创建足以满足我所有其他映射要求的自定义解析器,但在这种情况下它不起作用。
代码示例如下所示:
我收到以下错误
我想在我们所有的映射操作中坚持使用 Automapper,但我看到很多人说它不做这种类型的映射,所以我开始怀疑我是否用错了方法?此外,我已经看到了一些关于 ValueInjecter 的提及——这是 Automapper 的替代品,还是仅堵住 Automapper 中的孔以对模型进行水合并使用 Automapper 进行展平是否有用?
是的,我可以只在我的 ViewModel 中使用一个字符串,但我不喜欢魔术字符串,并且这个特殊的项目被助手用来在许多地方执行一些逻辑。
map - Linq 选择使用 Valueinjecter 注入对象
我可以即时将 IQueryable 结果转换为注入的对象吗?
我知道我可以在 Valueinjecter 的帮助下做到这一点:
所以代替这个:
我想使用类似的东西:
我有 atm 的另一种选择是循环一个 IEnumerable 并用注入的对象创建一个。
c# - AutoMapper 与 ValueInjecter
每次我在 StackOverflow 上寻找AutoMapper的东西时,我都会读一些关于ValueInjecter的东西。
谁能告诉我它们之间的优缺点(性能、特性、API 使用、可扩展性、测试)?
asp.net-mvc - ViewModel objects to EF model entities conversion where?
I currently have a repository based on Entity Framework v4 entities (CRUD and GET operations implemented). I'm in the process of creating the corresponding View Models for these entities. Where should I put the conversion/mapping between them? In the controller or modify the repository to perform the mapping in its methods and return back (or accept) the View Model typed objects?
Should I do this
or this
nhibernate - 值注入器:Dto 到域模型 (NHibernate)
我正在使用ValueInjecter将属性从域模型映射到通过服务层提供的 DTO。有问题的服务也接受更新......因此传入更新的 DTO,然后将其注入域对象并保存。
现在上面的代码所做的就是更新 Property Member.Country.Code 这显然不是我需要它做的。
所以从文档中,我想我需要创建一个覆盖并得到这个:
我的问题是在调试过程中, CountryLookup 永远不会被调用。
我能想到的可能原因:
- Nhibernate Proxy 类导致值注入器与 Country 类型不匹配?但这没有意义,因为它在展平期间起作用。
- 也许由于某种原因,unflattening 没有触发。即 Dto 是 CountryCode 和 Domain 是 Country.Code
我需要使用 Dto 上的 CountryCode 属性来调用 countryService.LookupCode 以返回要在更新注入期间使用的正确对象。