0

我在我的 OData API 中使用 AutoMapper。我发现了许多具有相同标题的问题并尝试了所有解决方案,但我的问题没有得到解决。我正在使用最新的 AutoMapper 版本 5.0.2。请让我知道我哪里出错了。

这是我的代码:

启动.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();
            });         

    }
}

合同类型控制器.cs

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

        return result; 
    }
}

谢谢你

4

1 回答 1

0

您正在尝试映射 T 的可枚举,而不仅仅是 T。试试这个

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

    return result;     
}
于 2016-11-17T12:05:27.630 回答