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

时间:2016-11-17 11:57:53

标签: c# odata automapper-5

我在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; 
    }
}

谢谢

1 个答案:

答案 0 :(得分:0)

您正在尝试映射可枚举的T,而不仅仅是T.尝试此

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

    return result;     
}