我在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;
}
}
谢谢
答案 0 :(得分:0)
您正在尝试映射可枚举的T,而不仅仅是T.尝试此
[ODataRoute]
[EnableQuery]
public IHttpActionResult Get()
{
var returnResult = db.ContractTypes.ToArray();
var result = Array.ConvertAll(returnResult, Mapper.Map<ContractTypeDto>);
return result;
}