问题标签 [automapper]

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.

0 投票
2 回答
8184 浏览

c# - AutoMapper 区分大小写还是不区分大小写?

如果对象a有一个名为“Id”b的属性,而对象有一个名为“ID”的属性,AutoMapper 会正确映射这两个属性(无需.ForMember(...)调用)吗?

0 投票
2 回答
1753 浏览

c# - 如何关闭 List 之间的 AutoMapper 自动列表转换和实体集?

我正在使用AutoMapper将我的 Linq-To-SQL 生成的实体映射到 DTO 。

当我最初创建单元测试时,我设置了特定的映射(通过静态配置类)以将一种类型的 EntitySet 转换为通用列表(反之亦然)

删除列表转换后(在确定 AutoMapper 将自动转换这些转换后),我的单元测试仍然有效,但它们慢到了爬行。它非常慢,每次测试都需要一分钟。

重新添加列表映射后,单元测试恢复了正常的性能速度。

有没有办法关闭列表的自动转换,以便我必须映射我的列表转换?如果我未能包含地图,我希望它抛出 AutoMapperException。我想避免这些性能问题。

如果情况变得更糟,我可能最终会编写一个快速代码生成模板来自动创建基于 DTO 的映射配置类。这样,我就不会错过任何东西。

谢谢。

0 投票
4 回答
9416 浏览

c# - 如何为每个 AppDomain 配置一次 AutoMapper

我当前的项目包含域模型、MVC Web 应用程序和单元测试的程序集。如何设置 AutoMapper 配置,以便所有程序集都引用相同的配置?

我想我可以将项目放入 Web 应用程序的 Global.asax 中,但是如何在单元测试中使用它呢?另外,如果配置在 Global.asax 中,域模型会选择地图吗?

非常感谢,

凯夫狗。

0 投票
2 回答
5999 浏览

c# - AutoMapper - 将目标字符串设置为 null 实际上使它成为 string.Empty

使用以下映射:

SomeStringProperty现在是空字符串不为空(如我所料)

这是一个错误吗?我怎样才能让它实际上为空?

我看到这opt.Ignore()会使它为空,但我实际上想做一个像下面这样的有条件的空,上面简化的错误(?)正在阻止这种情况

0 投票
1 回答
1590 浏览

vb.net - 使用 AutoMapper 将 DAL 属性映射到 BLL 属性时出现问题

我有一个 BLL 类,其中包含 Country 表中字段的属性(CountryCode、CountryName 等)。它还有一个属性 ioDAL,它是对 DAL 类(使用 SubSonic 2.2 创建)的引用,该类具有相同的命名字段。

我有一个 LoadRecord() 方法,它调用 DAL 的 FetchById() 方法,该方法通过调用数据库(SQL Server 2005 FWIW)填充 DAL 属性。

然后我想要做的是使用 AutoMapper(来自 CodePlex),而不是编写代码来从其 DAL 等效项中填充每个 BLL 属性。我认为这条线应该是

但这会产生错误“类型的值(DAL 类/命名空间命名)不能转换为'System.Type'”和“类型的值(BLL 类/命名空间命名)不能转换为'System.Type'”。

有人可以给我一个关于这个电话应该是什么的指南吗?(VB.NET VS2005)


EDIT 13-Jan-10 - Jimmy 让我展示更多代码:

0 投票
1 回答
1661 浏览

mapping - Automapper - 嵌套实体

我正在更新或创建具有子关系的实体,例如聚合根是 Product (ProductId, Title),它有零个或多个 ProductSuppliers (ProductSupplierId, SuppiedAtPrice, SupplierInfoId),并且 DTO 表示类似的结构(所有信息)。很简单。

我为 ProductDTO 和 ProductSupplierDTO 创建了一个简单的映射,我猜它的工作原理是为新实体设计的。

但是,在处理 DTO 时,我可能会更新现有实体,所以我执行以下操作:

对于 Product 上存在的原始类型,任何 ORM 都可以识别这些值是否脏。但是我不希望 Automapper 只用新集合替换 Product.Suppliers,我想在某处插入一些逻辑来迭代 product.Suppliers 并检查一个实体是否已经存在并更新它,或者创建一个新的 ProductSupplier不是一个值对象,它有一个Id,ProductSupplierId。

我找不到在映射中将其插入的位置。

有什么建议么?

0 投票
1 回答
319 浏览

asp.net-mvc - 表单发布场景和 MVC 中的复杂模型更新

很多人写过关于使用 Automapper 将域对象(模型)映射到视图模型的文章,我觉得这非常有趣和有用,但我的问题是如何做相反的事情。我了解此过程的复杂性以及为什么 Automapper 在这种情况下不起作用,但我必须在表单发布时做很多事情,特别是在更新时。

我有一个模型,我将它映射到一个视图模型,然后我向用户呈现一个表单。然后,表单被发布,由于模型可能非常复杂,我使用自定义 ModelBinders 来处理响应并构建一个不会直接持久化的新模型。相反,我从数据库加载原始模型并调用一个方法来从发布的更新它而不破坏任何东西。但这变得重复,也许有更好的方法。

我见过的示例非常有限且幼稚,但在我们的应用程序中,我们现在可能有 50 多个像这样的表单发布场景并且还在不断增长。

0 投票
2 回答
34848 浏览

c# - 使用 AutoMapper 映射集合

我正在尝试将数组映射到ICollection类型<T>.

基本上我希望能够做到:

Y在哪里Collection<T>

有任何想法吗?

0 投票
2 回答
2525 浏览

.net - 自动映射器映射

我正在尝试使用如下属性名称映射对象:

有没有比将每个属性单独映射到另一个更好的方法来做到这一点?唯一的区别是下划线。

0 投票
2 回答
1885 浏览

automapper - 自动映射器格式化程序不起作用

我正在尝试将格式化程序添加到我的 Automapper 配置中以设置所有DateTime?字段的样式。我尝试在全球范围内添加我的格式化程序:

而在具体的映射本身:

但似乎两者都不起作用 - 它总是以正常格式输出日期。作为参考,这里是我正在使用的 ViewModel,以及其余的配置:

后视图模型:

我究竟做错了什么?

谢谢!