[英]Automapper mapping exception with lists to lists
我对 Automapper 有疑问。 我的映射调用如下所示:
var dataContracts = MapperManager.Mapper.Map<List<Employee>, List<EmployeeDTO>>(entities.ToList());
实体是IQueryable<Employee>
在我的 Mapper 助手 class 中,我有:
public class MapperManager
{
public static MapperConfiguration MapperConfiguration { get; set; }
private static IMapper _mapper { get; set; }
public static IMapper Mapper
{
get
{
if (_mapper == null) {
_mapper = MapperConfiguration.CreateMapper();
}
return _mapper;
}
}
public static void RegisterMappinngs()
{
MapperConfiguration = new MapperConfiguration(cfg =>
{
...
cfg.CreateMap<Employee, EmployeeDTO>().MaxDepth(5);
...
}
}
}
RegisterMappings 在 Global.asax 中的 AppStartup 上被调用一次,之后我在 Map 操作中出现异常:
var dataContracts = MapperManager.Mapper.Map<List<Employee>, List<EmployeeDTO>>(entities.ToList());
错误映射类型。
映射类型:List`1 -> List`1 System.Collections.Generic.List`1[[NAMESPACE.Employee, ASSEMBLY, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] -> System.Collections.Generic .List`1[[NAMESPACE2.EmployeeDTO, ASSEMBLY2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]
任何人都可以提供任何想法我做错了什么?
最好的祝福
好的,这就是答案:
MapperConfiguration.AssertConfigurationIsValid()
当我调用它时,我得到了 AMConfigurationException 与未映射的属性,在另一个 Employee 属性的深处。
谢谢你的建议
就我而言,这是因为它试图映射本应被忽略的 ID
我遇到了这个错误,我能够在生产环境中运行它,但是单元测试失败了,失败了,失败了。
如果您设置自己的映射器配置,请确保包含您的配置文件。 还要仔细检查您的映射。
var mappingConfig = new MapperConfiguration(mc =>
{
mc.AddProfile(new MyMissingProfile());
});
_mapper = mappingConfig.CreateMapper();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.