问题标签 [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 投票
1 回答
2132 浏览

c# - AutoMapper:将多对多关联映射到 DTO(是否支持展平集合项?)

我在团队和员工之间有多对多的关联。

我想将其映射到以下 DTO。

所以 TeamName 是必须映射的那个。

我使用以下映射代码:

问题是 Employee.Teams 成员。顺便说一下,Teams 集合是急切的。所以它就在那里。

当 Teams 为 Null 时,我会收到 NullReference 异常。

如何将团队名称映射到 DTO?

编辑:现在我离开 Automapper 并改用这个繁琐的代码:

对我来说,这闻起来很刺鼻……

0 投票
1 回答
2487 浏览

c# - 将一种类型的列表映射到另一种类型

对于我的对象,我使用的是具有 BrokenRulesCollection 属性的 Csla。我想将其转换为我自己的具有 StatusMessages 属性的 DTO。

我创建了自己的解析器:

在映射中,我让它知道使用哪个解析器:

但是,当我尝试进行映射时:

我收到以下错误:

提供的值是 Csla.Validation.BrokenRulesCollection 类型,但需要 Favs.DomainObjects.Members.MemberRegistration。更改值解析器源类型,或使用 FromMember 将提供的源值重定向到值解析器。

有什么建议么?

编辑:

作为跟进,我也尝试创建一个转换但仍然得到相同的消息:

并配置如下:

0 投票
3 回答
351 浏览

c# - 最佳实践:如何在视图中以干净的方式显示多对多关联?

我正在使用 NHibernate,并且员工和团队之间存在多对多关联。

现在我想显示所有员工及其团队成员的姓名。

可能性一:

  • 使用 AutoMapper 并创建一个包含 Employee 属性和团队名称的 DTO(渴望加载团队)
  • 在视图中显示 DTO

可能性2:

  • 创建一个名为 EmployeeTeam 的新实体并将其与 NHibernate/FluentNHibernate 映射(该实体充当数据库中 Employee 和 Team 之间的关系表)
  • 使用急切加载加载 TeamEmployee 包括 Employee 和 Team
  • 显示 EmployeeTeam 实体
  • 使用 EmployeeTeam 成员 (EmployeeTeam.Employee.Name, EmployeeTeam.Team.Name)

可能性3:

  • 作为可能性 1 和 2
  • 为 EmployeeTeam 使用 DTO

可能性4:

  • 使用 ICriteria API
  • 使用 AliasToBeanResultTransformer (没有使用这个)

可能性5:

  • 使用 LINQ 到 NHibernate
  • 我想我仍然需要 EmployeeTeam 实体(目前不在我的领域模型中)

这个问题的最佳实践是什么?

还有其他建议吗?

0 投票
0 回答
1157 浏览

c# - 如何在 AutoMapper 中为集合使用解析器?

我想将我的一些域对象映射回 ORM (LLBLGen) 实体,为此我正在使用 AutoMapper。域对象包含集合,AutoMapper 文档指出我们不必担心它们,只需关心它们包含的类型。情况并非总是如此……

尝试映射到集合时,我收到一个 LLBLGen 错误,指出不允许清除 ListSource,我们应该使用关联的集合。所以发生的事情是 AutoMapper 似乎将 LLBLGen 集合用作ListSource 类型,其中 LLBLGen 覆盖了 Clear 方法(不允许使用)。

创建解析器并不能解决这个问题,因为目标集合是只读的,所以完全替换它是行不通的。

我需要的是一种自定义AutoMapper 映射集合方式的方法。这是在集合级别,而不是类型级别。

0 投票
6 回答
31030 浏览

c# - 使用 Moq 模拟 AutoMapper Mapper.Map 调用

在 AutoMapper 中为 Map 函数设置模拟期望的最佳方法是什么?

我提取了 IMapper 接口,以便为该接口设置期望。我的映射器有依赖关系,所以我必须将它们传递给映射器。

当我使用 2 个不同的依赖项实现创建映射器类的 2 个实例时会发生什么?我假设两个映射器都将使用相同的依赖实例,因为 AutoMapper 映射是静态的。或者 AutoMapper 甚至可能会抛出异常,因为我尝试使用相同的对象设置 2 个不同的地图。?

解决这个问题的最佳方法是什么?

0 投票
1 回答
1820 浏览

web-services - 在哪里放置 web 服务的自动映射器配置?

我读到 Web 服务没有 global.asax 来配置全局设置(如自动映射器配置)。所以我的问题是:

我应该将 automapper 配置放在每个 webmethod 中,还是有一个可以全局放置的地方?

我每晚都会调用几千次的网络服务,所以我担心如果自动映射器配置很昂贵,它会花费更长的时间。我是正确的还是只是不必要地担心?

谢谢,约翰

0 投票
1 回答
291 浏览

automapper - AutoMapper 是否支持 ReadOnlyCollections?

我尝试了各种配置,但无法使其正常工作。我想知道它是否支持?

0 投票
3 回答
75063 浏览

c# - Automapper:更新属性值而不创建新对象

如何在不创建新对象的情况下使用 automapper 更新另一个对象的属性值?

0 投票
1 回答
1254 浏览

c# - Mapping all properties of 'X' type with AutoMapper

I've just started using AutoMapper and so far found it very straight-forward and time-saving.

Just one thing I'm not sure about - how do I map all the properties of a given type in the same way?

Can this be done with AutoMapper in a single statement, using a lambda, as with regular mapping?

0 投票
2 回答
555 浏览

asp.net - 从 googlecode 签出 AutoMapper 的正确网址是什么?

我指的是 Jimmy Bogard 的这个项目:http: //www.codeplex.com/AutoMapper

代码存储库站点是:http ://code.google.com/p/automapperhome/source/checkout

指示的结帐命令是: svn checkout http://automapperhome.googlecode.com/svn/trunk/automapperhome-read-only

这不起作用。

我已经尝试过 SlikSVN、Tortoise SVN、QSVN 以及可能我已经忘记的其他方法。

客户:乌龟SVN

网址:svn://automapperhome.googlecode.com/svn/trunk/ automapperhome-read-only

结果

将“svn://automapperhome.googlecode.com/svn/trunk/automapperhome-read-only”签出到“C:\Development\MVC\automapper”无法连接到主机“automapperhome.googlecode.com”:连接尝试由于连接方一段时间后没有正确响应而失败,或者由于连接的主机没有响应而建立连接失败。


客户:SlikSVN

命令:

C:\Program Files\SlikSvn\bin>svn checkout http://automapperhome.googlecode.com/svn/trunk/ automapperhome-read-only c:development\automapper

结果:

svn:'http://automapperhome.googlecode.com/svn/trunk'选项:200 OK ( http://automapperhome.googlecode.com )

命令:

C:\Program Files\SlikSvn\bin>svn checkout svn://automapperhome.googlecode.com/svn/trunk/ automapperhome-read-only c:development\automapper

结果:

svn: Can't connect to host 'automapperhome.googlecode.com': 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。


我不知所措。我需要在路由器上打开一个默认端口才能使其正常工作。我只在路由器的防火墙后面。任何帮助,将不胜感激。谢谢。


更新了为 sliksvn 尝试的其他命令:

C:\Program Files\SlikSvn\bin>svn checkout svn://automapperhome.googlecode.com/svn/trunk/ c:development\automapper

svn: Can't connect to host 'automapperhome.googlecode.com': 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。

C:\Program Files\SlikSvn\bin>svn checkout svn://automapperhome.googlecode.com/svn/trunk/

svn: Can't connect to host 'automapperhome.googlecode.com': 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。

C:\Program Files\SlikSvn\bin>svn checkout svn://automapperhome.googlecode.com/svn/trunk/automapperhome-read-only c:development\automapper

svn: Can't connect to host 'automapperhome.googlecode.com': 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。

*************更新 3************************ 奇数。我在工作时在 Qsvn 上运行了简单的 checkout 命令,它把所有东西都拉进去了。我家用机器的设置肯定有问题,但我不确定是什么。我将研究使用 Fiddler 来检查发生了什么。谢谢你们的帮助。我知道这可能让你和我一样感到沮丧。没有什么比不应该工作更令人讨厌的了,但我敢肯定,我这样做有一些奇怪的地方。