【问题标题】:AutoMapper with Entity Framework带有实体框架的 AutoMapper
【发布时间】:2018-04-04 15:29:30
【问题描述】:

当我尝试映射我的 EF 实体并尝试将其转换为 DTO 时,我正在使用 AutoMapper v6.1.1EntityFramework v6.1.3,但出现以下错误:

AutoMapperMappingException: Missing type map configuration or unsupported mapping.

类似问题here 但没有帮助我。这与 EF 动态代理有不同的类型有关。像这样的:

System.Data.Entity.DynamicProxies.Gender_3419AAE86B58120AA2983DA212CFFEC4E42296DA14DE0836B3E25D7C6252EF18

代码:

Mapper.Initialize(c => c.CreateMap<MyEntity, MyDTO>());      


using (var context = new DbContext())
{
        var entities= context.MyTable.GetAll().ToList();
        var myDTOs = Mapper.Map<List<MyEntity>, List<MyDTO>>(entities); // <---error here
} 

谁能帮助我如何使用 AutoMapper 处理 Entity Framework 动态代理。

谢谢。

【问题讨论】:

  • var myDTOs = Mapper.Map&lt;List&lt;MyDTO&gt;&gt;(entities);?
  • 不工作同样的错误。

标签: entity-framework automapper


【解决方案1】:

通常您对单个对象而不是列表进行这种映射。尝试类似:

var myDTOs = entities.Select(e => Mapper.Map<MyEntity, MyDTO>(e)).ToList();

【讨论】:

  • 不起作用同样的错误:缺少类型映射配置或不支持的映射。
  • 在这种情况下,我认为没有人可以在不知道您从什么映射到什么以及如何配置映射器的情况下为您提供帮助。据我了解,该错误消息是一个非常通用的 AutoMapper 错误,可能由多种问题引起。
猜你喜欢
  • 1970-01-01
  • 2011-12-10
  • 2015-12-26
  • 1970-01-01
  • 2018-06-22
  • 1970-01-01
  • 2011-08-08
  • 2014-03-24
  • 1970-01-01
相关资源
最近更新 更多