繁体   English   中英

自动映射器不会忽略带有错误的属性

[英]Automapper not ignoring properties with an error

我们有一个复杂的对象User,其中包含一堆其他对象的列表。

User
  List<User> Subordinates {get; set;}
  etc....

当我们运行代码时,某些属性出错是可以接受的,因为与数据库的连接已关闭并且我们没有得到说的下属。

在AutoMapper中,尝试将User类映射到另一个类时遇到错误。

因此,Subordinates属性中的错误是:

'((System.Data.Entity.DynamicProxies.User_26F7582000F06E0D5B307573194E69014E40D1C586E95D4E4932757C1F4DE360)((System.Data.Entity.DynamicProxies.WorkflowTask_DEDE69BC0D3CAFD0CCDA62406BC48A7A7CCBD5E8B13369FF5E761B64348A767C)thisTask).User).Subordinates' threw an exception of type 'System.ObjectDisposedException'

AutoMapper抛出的错误是:

{"Error mapping types.\r\n\r\nMapping types:\r\nWorkflowTask -> jsonTask\r\nDataRepository.WorkflowTask -> Tasks.Models.jsonTask\r\n\r\nType Map configuration:\r\nWorkflowTask -> jsonTask\r\nDataRepository.WorkflowTask -> Tasks.Models.jsonTask\r\n\r\nProperty:\r\nUser"}

然后在InnerException中;

{"Error mapping types.\r\n\r\nMapping types:\r\nUser -> jsonUser\r\nDataRepository.User -> Tasks.Models.jsonUser\r\n\r\nType Map configuration:\r\nUser -> jsonUser\r\nDataRepository.User -> Tasks.Models.jsonUser\r\n\r\nProperty:\r\nSubordinates"}

我只需要AutoMapper来忽略那些错误的属性。

根本原因是数据通常在using(var context = new MyDbContext())块中延迟加载到您的实体中,并且AutoMapper尝试在上下文块外部映射未加载的属性,触发加载,因此出现System.ObjectDisposedException因为上下文已被处理。

您需要做的是不要忽略无法加载的属性,但要确保在映射之前正确加载了所有属性。 我建议您阅读本指南 ,它显示了如何将控制器,实体和dbcontext放入正确的层。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM