C# 在.Net Core中配置Automapper 9.0
我遵循了官方文档,说明了Automapper 9.0从静态API的转变,但仍然无法在我的c dotnet核心应用程序中运行。我得到以下例外情况: AutoMappingException:缺少类型映射配置或 我的控制器类中不支持的映射 你能告诉我有关Automapper 9.0的配置步骤吗 以下是我执行的步骤: Startup.cs MyMapperProfile类 控制器类 我想这应该能解决它。在概要文件中,您正在创建一个新配置,在该配置上注册映射,然后讨论该配置C# 在.Net Core中配置Automapper 9.0,c#,.net,.net-core,automapper-9,C#,.net,.net Core,Automapper 9,我遵循了官方文档,说明了Automapper 9.0从静态API的转变,但仍然无法在我的c dotnet核心应用程序中运行。我得到以下例外情况: AutoMappingException:缺少类型映射配置或 我的控制器类中不支持的映射 你能告诉我有关Automapper 9.0的配置步骤吗 以下是我执行的步骤: Startup.cs MyMapperProfile类 控制器类 我想这应该能解决它。在概要文件中,您正在创建一个新配置,在该配置上注册映射,然后讨论该配置 希望这有帮助。错误在控制器代
希望这有帮助。错误在控制器代码中。您应该使用内置的集合映射支持直接从一种集合类型映射到另一种集合类型,或者单独映射每个元素,自己构建目标集合。目前,您只是丢弃映射对象并返回一个空列表
public List<Material> getAllMaterials()
{
var materialsList = _mapper.Map<List<Contracts.Material>>(masterDataService.GetMaterials())
return materialsList;
}
或:
您的控制器代码应该如下所示
public List<Material> getAllMaterials()
{
List<Material> materialsList = _mapper.Map<List<Contracts.Material>>(masterDataService.GetMaterials());
return materialsList;
}
否则,将单个对象映射到列表。您还返回了空列表。我没有看到MasterData.Models.Material到IEnumerableHi@trailmax的映射,很抱歉我没有发布完整的类。正如您所看到的,最后一个映射是关于合同的,您的问题与您喜欢称自己为应用程序微服务这一事实无关。请仔细使用这个术语!非常感谢。不幸的是,即使在这次改变之后,我仍然得到同样的例外。我想创业课有点不对劲。。。
public List<Material> getAllMaterials()
{
var materialsList = _mapper.Map<List<Contracts.Material>>(masterDataService.GetMaterials())
return materialsList;
}
public class MasterDataMapperProfile : Profile
{
public MyMapperProfile()
{
CreateMap<MasterData.Models.SupplierMaterial, SupplierMaterial>().
ForMember(dto => dto.TechnicalDrawings, conf => conf.MapFrom(ol =>
ol.TechnicalDrawings.Select(v => v.Id)));
}
}
public List<Material> getAllMaterials()
{
var materialsList = _mapper.Map<List<Contracts.Material>>(masterDataService.GetMaterials())
return materialsList;
}
public List<Material> getAllMaterials()
{
List<Material> materialsList = new List<Material>();
foreach (MasterData.Models.Material m in masterDataService.GetMaterials())
{
var mapped = _mapper.Map<Contracts.Material>(m);
materialsList.Add(mapped);
}
return materialsList;
}
public List<Material> getAllMaterials()
{
List<Material> materialsList = _mapper.Map<List<Contracts.Material>>(masterDataService.GetMaterials());
return materialsList;
}