AutoMapper 映射中的 foreach 中的额外迭代

2023-11-21

由于某种原因,我在 AutoMapper 地图定义中使用的循环迭代次数超出了应有的次数。

地图定义:

    Mapper.CreateMap<AdminGameEditModel, Game>()
        .BeforeMap((s, d) =>
        {
            foreach (var platId in s.PlatformIDs)
            {
                Platform newPlat = _gameRepository.GetPlatform(platId);

                d.Platforms.Add(newPlat);
            }
        })
        .ForMember(dest => dest.BoxArtPath, opt => opt.Ignore())
        .ForMember(dest => dest.IndexImagePath, opt => opt.Ignore())
        .ForMember(dest => dest.Cons, opt => opt.MapFrom(src => String.Join("|", src.Cons)))
        .ForMember(dest => dest.Pros, opt => opt.MapFrom(src => String.Join("|", src.Pros)))
        .ForMember(dest => dest.LastModified, opt => opt.UseValue(DateTime.Now))
        .ForMember(dest => dest.Platforms, opt => opt.Ignore());

foreach 在BeforeMap由于某种原因,将多次迭代 s.PlatformIDs 数组。因此,例如,如果它包含两个值,我将得到六次或更多迭代,其中两个预期值重复。 PlatformID 是not定义为二维数组,调试器确认该数组仅包含应有的值,没有重复的集合。

我很困惑可能是什么原因造成的。


编辑:通过循环,我有以下断点 -

.BeforeMap((s, d) =>
{
    foreach (var platId in s.PlatformIDs) // breakpoint 1
    {
        Platform newPlat = _gameRepository.GetPlatform(platId); // breakpoint 2

        d.Platforms.Add(newPlat);
    } // breakpoint 3
})

第一遍是正常的 - 断点 1 -> 断点 2 -> 断点 3。然后它将返回到 2,然后返回到 3,这是预期的。奇怪的是,它会跳回断点 1,并重新开始该过程。

我不确定是否有一个模式。两个数组值导致六次传递。一个数组值会产生四次传递。


编辑2:我的预感是对的 -BeforeMap多次发射。


编辑3:问题仍然存在AfterMap以及。每个映射该方法执行多次。


从类似的情况来看,这似乎是一个合法的错误:http://automapper.codeplex.com/workitem/6604。我已将其作为一个问题写在 AutoMapper 的 GitHub 上,并将该问题链接到这个问题,以便开发人员可以看到我正在尝试做什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AutoMapper 映射中的 foreach 中的额外迭代 的相关文章

  • 高级 Win32 图像文件 I/O?

    我想在 Windows C 应用程序中将图像文件读入内存 什么是一个相当简单的解决方案 也许类似于 IOS 提供的UIImage 我希望支持合理数量的文件格式 我需要为图像处理的位图提供一些低级访问权限 我在互联网上阅读了很多内容 看起来
  • boost线程在中断时不打印退出消息

    我有这段代码用于执行三个线程 其中第二个线程应在按 Enter 时中断并打印退出消息 void input val DO STUFF return void process val DO STUFF try cout lt lt waiti
  • 我应该在单元测试中使用 AutoMapper 吗?

    我正在为 ASP NET MVC 控制器方法编写单元测试 这些控制器依赖于IMapper 我创建的用于抽象 AutoMapper 的接口 使用 Castle Windsor 通过构造函数注入传入 动作方法使用IMapper从领域对象映射到
  • 使用 C# 使用应用程序密码登录 Office 365 SMTP

    在我们的 Office 365 公司帐户中实施两步身份验证之前 我的 C WPF 程序已成功进行身份验证并发送邮件 我使用了 SmtpClient 库 但现在我必须找到另一个解决方案 因为它不再起作用 我找不到任何使用 O365 应用程序密
  • 浮点提升:stroustrup vs 编译器 - 谁是对的?

    在 Stroustrup 的新书 C 编程语言 第四版 第 10 5 1 节中 他说 在执行算术运算之前 整数提升用于从较短的整数类型创建整数 类似地 浮点提升是用于从浮点数创建双精度数 我用以下代码确认了第一个声明 include
  • 当我单击 GridView 项时返回 ImageView 实例

    当我点击GridView项时如何返回ImageView实例 我为 ItemClick 创建自定义绑定事件 public class ItemClickSquareBinding MvxBaseAndroidTargetBinding pri
  • Linq Where 本地计数器关闭在 VS watch 中的结果不同

    我尝试删除前 3 个元素array与 LinQWhere扩展功能 这是一个例子 var array new 1 2 3 4 5 6 7 8 9 var count 3 var deletedTest1 0 var test1 array W
  • 身份未映射异常

    System Security Principal IdentityNotMappedException 无法转换部分或全部身份引用 该错误仅在应用程序注册后出现一次 当 SecurityIdentifier 无法映射时 例如 返回 Ide
  • 使用 VSTO 更改 Outlook 设置

    我刚刚花了大约 4 个小时试图弄清楚如何以编程方式检索 设置 Microsoft Outlook 2010 的 Outlook 设置 我所说的 设置 是指文件 选项 邮件下的设置 我想做的是检索用户设置的设置列表 自动化我们每天需要在某些消
  • 组合 Datepicker 和 Timepicker 值 Win 8.1

    我试图同时使用 Datepicker Timepicker 来返回可以存储在数据库中的 DateTime 例如 我想要安排会议的开始日期和结束日期 如果适用 我将如何将这些值组合成 SQL 数据库可以处理的正确格式 任何反馈都会很棒 我让这
  • 成员初始值设定项列表中的求值顺序是什么?

    我有一个带有一些参数的构造函数 我假设它们是按照列出的顺序初始化的 但在一种情况下 它们似乎是按相反的顺序初始化的 导致中止 当我反转参数时 程序停止中止 下面是我正在使用的语法的示例 a 之前需要初始化b 在这种情况下 你能保证这个初始化
  • 通过 mpi 发送 c++ std::vector

    我知道存储一个std vector
  • C#:使用 System.Text 和 System.Text.RegularExpressions 之间的区别

    在 ASP NET C 应用程序中 我注意到为了使用 Regex 和 StringBuilder 我必须将两者都放在 using System Text using System Text RegularExpressions 从简单的角度
  • 当格式字符串包含“{”时,String.Format 异常

    我正在使用 VSTS 2008 C Net 2 0 执行以下语句时 String Format 语句抛出 FormatException 有什么想法是错误的吗 这是获取我正在使用的 template html 的位置 我想在 templat
  • 如何使用 Clang 查找内存泄漏

    我在我的机器 ubuntu 中安装了 Clang 以便发现我的 C 代码中的内存泄漏 我编写了一个示例代码来检查它的工作情况 如下所示 File hello c for leak detection include
  • 通过 MSBuild 调用 cl.exe 时无限期挂起

    我正在尝试在我的 主要是 C 项目上运行 MSBuild 想象一下一个非常庞大的代码库 Visual Studio 2015 是有问题的工具集 Windows 7 SP1 和 VS 2015 更新 2 即使使用 m 1 从而迫使它仅使用一个
  • 便携式终端

    有没有办法根据所使用的操作系统自动使用正确的 EOL 字符 我在想类似的事情std eol 我知道使用预处理器指令非常容易 但很好奇它是否已经可用 我感兴趣的是 我的应用程序中通常有一些消息 稍后我会将这些消息组合成一个字符串 并且我希望将
  • 为什么我不能在扩展 List 的类中调用 OrderBy?

    我有一堂课 Deck 其中包含一个名为的方法Shuffle 我正在致力于重构Deck延长List
  • 宏观评价[重复]

    这个问题在这里已经有答案了 可能的重复 未定义的行为和序列点 https stackoverflow com questions 4176328 undefined behavior and sequence points 我无法理解以下宏
  • 有没有办法让 VS2010 在我的方法中扩展或收缩 try 块?

    我的代码有很多 try catch finally 块 与我在 VS2010 中的方法不同 除了添加区域之外 我无法在开发时扩展或收缩这些区域来隐藏内容 try vm R vm Qu vm T vm D vm Fil vm Type vm

随机推荐

  • WCF客户端和服务器

    我需要多个与 WCF 服务通信的客户端 WCF 服务还必须能够连接到任何一个客户端 因此 听起来服务器和客户端都需要内置 WCF 服务器和客户端 这是正确的还是有某种方法可以做到这一点 我正在查看 NetPeerTcpBinding 但它已
  • Haskell:单子 takeWhile?

    我有一些用 C 编写的函数 我从 Haskell 调用它们 这些函数返回IO CInt 有时我想运行所有函数 无论它们返回什么 这很容易 为了示例代码 这是当前发生的情况的总体思路 Prelude gt let f x print x gt
  • Twitter Bootstrap 轮播显示两个项目

    现在我已经实施了Twitter Bootstrap 3 Carousel它显示一个项目并在转换期间显示下一个元素 因此它看起来像 1 transition 2 transition 3 我必须显示两个项目 并在转换后显示第二个元素和第三个元
  • 如何解析从字符串加载 XSL 的转换中包含的 XSL?

    NET 2 0 VS2005 我正在尝试使用XslCompiledTransform类来执行 XSL 转换 我有两个 XSL 文件 第一个文件包含对另一个文件的引用 其形式为
  • 对列表中的奇数进行排序

    如何对整数列表中的奇数进行升序排序 但将偶数保留在原来的位置 Example sortArray 5 3 2 8 1 4 1 3 2 8 5 4 我的代码 def sort array source array odd numbers n
  • 是否可以重置 iOS 中的隐私设置?

    为了测试对 iOS 日历的访问权限 我需要重置测试设备上的隐私设置 但是 每次我在设备上安装它时 它都会记住旧的隐私设置 并且不会显示警报视图来询问我是否授予访问权限 删除应用程序并重新安装并不会改变这一事实 有没有办法让 iOS 忘记它知
  • robots.txt 的正则表达式

    我正在尝试设置 robots txt 但我不确定正则表达式 我有四个不同的页面 全部以三种不同的语言提供 我想我可以使用正则表达式 而不是列出每个页面乘以 3 nav aspx page aspx changelang 可能附加一个查询字符
  • Android:检测 USB

    有什么方法可以 以编程方式 在您的活动 应用程序中知道用户已通过 USB 将您的手机连接到 PC 有些人建议使用UMS CONNECTED从最新版本的 Android 开始已弃用 另一个问题是它不适用于支持 MTP 的设备 其他人建议使用B
  • 错误消息“您无法登录此应用程序,因为它不符合 Google 的 OAuth 2.0 政策以确保应用程序安全”

    我正在开发一个基于网络的应用程序 它允许我信任的员工编辑我的 YouTube 频道的标题 描述 标签等 在尝试 选择加入 我自己的应用程序时 我被发送到回调 URI 并附带一条错误消息 您无法登录此应用 因为它不符合 Google 保护应用
  • C++ 中使用向下取整、向上取整和向外舍入模式进行整数除法

    最近 我看到这个问题它询问如何将整数除以ceil舍入 朝正无穷大 不幸的是 答案要么不适用于有符号整数 要么存在下溢和溢出问题 例如 接受的答案有这个解决方案 q 1 x 1 y When x为零 则存在下溢 0结果是不正确的 你如何实施c
  • Google 地理编码 v2 API 突然停止工作

    地理编码 v2 API 意外停止 e g 我无法从 API 获取经纬度 服务器的输出是 Status code 610 request geocode 我搜索了status 610但找不到任何相关信息 Thanks 服务已停止 今天是 3
  • IIS 中的匿名访问和 NTLM 身份验证

    我有一台使用 IIS 设置的服务器 并且我的站点有一些允许匿名访问的页面和一些需要 集成 Windows 身份验证 的页面 在 IIS 的 身份验证方法 屏幕上 您似乎可以同时启用 集成 Windows 身份验证 和匿名访问 但我读过的文档
  • Fieldset:中心图例

    正如之前多次询问的那样 但从未真正回答过 我想将图例放在字段集中 这个技巧在这里完美完成 我也为我的项目购买了它 http themeforest net item aloma liquid mobile template full scr
  • 使用 PostgreSQL 和 REF_CURSOR 的 JPA 2.1 StoredProcedureQuery

    我在 PostgreSQL 数据库中创建了一个函数 我想使用 JPA 2 1 的 StoredProcedureQuery 方法调用该函数 这是我的 PostgreSQL 查询 CREATE OR REPLACE FUNCTION get
  • 如何重命名路径以响应填充

    我有一个这样的查询 galleryModel find id galleryId populate model User path objectId select firstName lastName 结束响应objectId会是这样的 o
  • C++ 约束应该急切地评估还是惰性地评估?

    这个问题的主要目的是引起社区对 libstdc 范围不适用于 clang 的关注 https bugs llvm org show bug cgi id 46746 Avi Kivity 认为这是一个 gcc 错误 https gcc gn
  • 如何在 Scala 中定义保留前导标记的三元运算符?

    我正在编写一个生成 Scala 输出的代码生成器 我需要以这样的方式模拟三元运算符 即导致 的标记保持不变 例如转换表达式c p q to c something 简单的if c p else q不符合我的标准 因为它需要if before
  • jQuery.data 不再适用于窗口?

    我最近升级了我们项目的 jQuery 文件1 4 2 to 1 4 4看来截至1 4 3我们一直在使用的方式jQuery data已停止工作 我们有这样的代码 var events window data events if events
  • 命名空间/解决方案结构

    我很抱歉问了这样一个笼统的问题 但这对我来说可能是一个挑战 我的团队即将开始一个大型项目 该项目有望将多年来不断发展的所有随机一次性代码库整合在一起 鉴于该项目将涵盖整个公司的标准化逻辑实体 客户 员工 小任务 控制小任务的大任务以及公用事
  • AutoMapper 映射中的 foreach 中的额外迭代

    由于某种原因 我在 AutoMapper 地图定义中使用的循环迭代次数超出了应有的次数 地图定义 Mapper CreateMap