在Automapper 5.0.2中缺少类型映射配置或不支持映射

本文关键字:映射 类型 配置 不支持 Automapper | 更新日期: 2023-09-27 18:18:28

我在我的OData API中使用AutoMapper。我找到了许多相同题目的问题,也尝试了所有的解决方案,但我的问题没有得到解决。我使用的是最新的AutoMapper 5.0.2版本。请告诉我哪里做错了。

下面是我的代码:

Startup.cs

public static partial class Startup
{
    public static void ConfigureApp(IAppBuilder appBuilder)
    {
       ConfigureAuth(appBuilder);
        AutoMapperWebConfiguration.Configure();
        Mapper.AssertConfigurationIsValid();
        // Config OData       
        ConfigureOData(config);
     }
}

AutoMapperWebConfiguration.cs

public static class AutoMapperWebConfiguration
{
    public static void Configure()
    {
        Mapper.Initialize(
            config =>
            {
                config.CreateMap<ContractType, ContractTypeDto>().ReverseMap();
            });         
    }
}

ContractTypeController.cs

public class ODataContractTypeController : ODataController
{
    [ODataRoute]
    [EnableQuery]
    public IHttpActionResult Get()
    {
        var returnResult = db.ContractTypes;          
        var result = Mapper.Map<ContractTypeDto>(returnResult);
        return result; 
    }
}

谢谢

在Automapper 5.0.2中缺少类型映射配置或不支持映射

您正在尝试映射T的enumerable,而不仅仅是T。试试

[ODataRoute]
[EnableQuery]
public IHttpActionResult Get()
{
    var returnResult = db.ContractTypes.ToArray();
    var result = Array.ConvertAll(returnResult, Mapper.Map<ContractTypeDto>);       
    return result;     
}