问题标签 [automapper-2]
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:如何利用自定义 INamingConvention?
我正在使用一个数据库,设计师似乎真的很喜欢大写字母和下划线键。因为我有一个简单的 ORM,所以我的数据模型也使用这些名称。我需要构建 DTO,并且我更愿意为它们提供标准名称,因为我们通过服务公开它们。 下面的代码现已更正!测试通过,因此如果您需要使用多个命名约定,请将此作为参考
automapper - AutoMapper 是否可以按约定进行投影?
我从我的数据库返回了以下数据:
我的域对象如下:
使用内置的 DataReaderMapper,从包含数据库数据的 IDataReader 映射很简单,除了我无法填充 Address 对象。
理想情况下,我想使用 DynamicMap 如下:
当我这样做时, order.Number 被填充但 order.Address 为空。当我在 Order 构造函数中创建 Address 类的新实例时,它不为空(如预期的那样),但没有设置任何属性。
我试过了:
并将列名更改为简单的“Street”、“City”和“State”,但没有成功。
我试过了:
以及其中的所有组合。我什至为 Address 上的每个属性指定了 ForMembers。没有任何效果。
我知道 AutoMapper 支持按惯例展平,我只能根据我发现的情况假设按惯例进行投影(它认为 AddressStreet 应该映射到 Address.Street)是不可能的。我错了吗?
我如何让上面的例子工作???
更新
我们已经能够使用它来工作:
不过,似乎有点笨拙。
asp.net-mvc-3 - Automapper:缺少 TypeMap 配置或不支持的映射
AutoMapAttribute取自这里。
如果操作返回“测试”,它会起作用。如果它返回“IEnumerable”,则不会(显然,视图更改为期望 TestViewModel 和 IEnumerable)。我究竟做错了什么?据我了解,我不需要显式映射 List 类型。
这可能有一个简单的答案,但在过去的两个小时里试图让它工作,所以非常感谢有人指出我的解决方案。
c# - 如何避免重命名属性和 Automapper 的问题
假设我们有两个具有以下属性的 c# 类 A 和 B
使用 Automapper,我可以毫无问题地从 A 类映射到 B 类。
如果我对Class A -Name进行重构会发生什么。使用 VS2010 重命名。
然后类将是
由于我们使用的是 Automapper,Refactor 无法知道他也应该更改 B 的名称。
最糟糕的是重构永远不会抱怨任何事情,直到我们发现AutoMap 之后的B.Name为空......
我们怎样才能避免这类问题呢?
c# - 内存泄漏 - 任何猜测它可能在哪里
我正在处理 .Net 项目(Windows 服务),我发现内存泄漏。使用 ANTS 内存分析器,我已经确定 - 根本原因是在非托管内存范围内。但我不使用任何 COM/COM+ 或 p/invoke - 纯 .Net(DataAcces - Fluent nHibernate、Automapper、WCF)..
假设是什么原因?我怎样才能找到瓶颈..我对任何经历过并解决过这种问题的经历都感兴趣
更多细节:
- 我知道对象是如何处理的(并且做得对)
- 我(几乎)不使用事件
- 我正在使用计时器
- 我正在使用多线程(但它相当并行)
- 我的应用程序不是无状态的 - 我在对象的生命周期中跟踪它们
automapper - 使用 Automapper 映射两个相同类型的集合时覆盖集合
我的课程定义如下
我必须从源映射到目的地。我必须合并源中的所有集合并将它们映射到目标。
我已经定义了我的映射如下。但是这段代码并没有帮助我。它不是合并所有集合,而是仅映射最后一个 (UnreportedDrivers) 覆盖顶部的集合。
请在这种情况下帮助我。
提前致谢。
automapper - 使用 Automapper 将多个集合映射到单个集合
我可以使用以下代码将一组相同类型的集合映射到单个集合。
通过上述解决方案,我可以将所有三种类型的驱动程序映射到一个集合中。我的目标对象(驱动程序)有一个名为 DriverType 的属性,它有助于识别驱动程序的类型。(自行车司机/汽车司机/卡车司机)
在上面的代码中,我如何根据我添加的集合设置 DriverType 属性。
例如:我必须硬编码
DriverType = CarDriver 用于 CarDrivers 集合项 DriverType = BikeDriver 用于 BikeDrivers 集合项。
提前致谢
c# - 自动映射器布尔属性为是或否
对于 TypeA 和 TypeB 之间的映射,我希望将所有布尔属性映射到“是”或“否”。我不想覆盖<bool, string>
映射,因为我只希望 TypeA 和 TypeB 之间的映射。而且我不想为每个 TypeA 的布尔属性使用 .ForMember,因为它们很多。也许 ForAllMembers 有一个技巧,但我不能让它起作用。
c# - AutoMapper 使用了错误的构造函数
今天,我使用 AutoMapper v1.1 升级了一个功能齐全的应用程序,现在使用 AutoMapper v2.1,我遇到了一些使用以前版本从未遇到过的问题。
这是我的代码从Dto映射回域对象的示例
...
然而,我在 v2.1 中遇到的第一个问题是 AutoMapper 尝试使用带有 2 个 args 的构造函数,而其中一个 args 为 null 并且应该使用 1 个 arg 构造函数。
然后我尝试使用
但是我不断收到无法解决的“模糊调用”错误。
然后我尝试了
并且确实使用无参数构造函数成功创建了 TypeOne 对象,但随后它未能设置私有 setter 属性。
我已经在 AutoMapper 网站上寻求帮助并下载了源代码以进行查看,但没有得到太多关于 ConstructUsing 的小文档并且没有太多单元测试。
有什么明显的我遗漏的东西我应该用 v2.1 改变吗?我很惊讶它与 v1.1 相比发生了如此大的变化。
automapper-2 - AutoMapper:更新子属性而不是覆盖它
我有一个带有子属性的类:
当我构造新的 Person 对象时,我希望自动映射器执行如下操作:
但是如果我已经有一个 Person 对象,我只想填充它,并且如果我的 Person 对象已经设置了 Address ,我希望该 Address 对象也被填充,而不是替换。本质上:
理想情况下,我希望能够配置 AutoMapper 以自动解决这个问题,即如果 Address 不为 null - 然后创建并设置它,如果它不为 null - 然后只需更新它。
现在我使用 AfterMap 如下:
我这样做是因为Address
object 是一个自我跟踪实体,并且它具有我无法覆盖的状态。
有没有办法重构我的代码以不使用 AfterMap?