将 AutoMapper 与异步方法一起使用时出错
Error using AutoMapper with asynchronous method
我在存储库中使用带有异步方法的 AutoMapper。我在 AutoMapperConfig 中将需要的地图设置为 Mapper.CreateMap<Users, UsersViewModel>();
不幸的是我得到了这个错误:
Action: N/A. Controller: Users. Error in AutoMapper. <br /> Message: Missing type map configuration or unsupported mapping.
Mapping types:
Task`1 -> Task`1
System.Threading.Tasks.Task`1[[System.Collections.Generic.IEnumerable`1[[DigitalHubOnlineStore.Models.Users, DigitalHubOnlineStore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] -> System.Threading.Tasks.Task`1[[System.Collections.Generic.IEnumerable`1[[DigitalHubOnlineStore.ViewModels.UsersViewModel, DigitalHubOnlineStore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
Destination path:
Task`1
Source value:
System.Threading.Tasks.Task`1[System.Collections.Generic.IEnumerable`1[DigitalHubOnlineStore.Models.Users]].
这是我调用映射的方式:
public async Task<IEnumerable<UsersViewModel>> GetUsersList()
{
var t = new Task<IEnumerable<Users>>(() => _db.Users.ToEnumerable());
t.Start();
await t;
var vm = Mapper.Map<Task<IEnumerable<Users>>, Task<IEnumerable<UsersViewModel>>>(t);
return vm.Result.OrderBy(x => x.Login);
}
我该如何解决?
将您的 AutoMapperConfig 更改为
Mapper.CreateMap<Task<IEnumerable<Users>>, Task<IEnumerable<UsersViewModel>>>();
我在存储库中使用带有异步方法的 AutoMapper。我在 AutoMapperConfig 中将需要的地图设置为 Mapper.CreateMap<Users, UsersViewModel>();
不幸的是我得到了这个错误:
Action: N/A. Controller: Users. Error in AutoMapper. <br /> Message: Missing type map configuration or unsupported mapping.
Mapping types:
Task`1 -> Task`1
System.Threading.Tasks.Task`1[[System.Collections.Generic.IEnumerable`1[[DigitalHubOnlineStore.Models.Users, DigitalHubOnlineStore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] -> System.Threading.Tasks.Task`1[[System.Collections.Generic.IEnumerable`1[[DigitalHubOnlineStore.ViewModels.UsersViewModel, DigitalHubOnlineStore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
Destination path:
Task`1
Source value:
System.Threading.Tasks.Task`1[System.Collections.Generic.IEnumerable`1[DigitalHubOnlineStore.Models.Users]].
这是我调用映射的方式:
public async Task<IEnumerable<UsersViewModel>> GetUsersList()
{
var t = new Task<IEnumerable<Users>>(() => _db.Users.ToEnumerable());
t.Start();
await t;
var vm = Mapper.Map<Task<IEnumerable<Users>>, Task<IEnumerable<UsersViewModel>>>(t);
return vm.Result.OrderBy(x => x.Login);
}
我该如何解决?
将您的 AutoMapperConfig 更改为
Mapper.CreateMap<Task<IEnumerable<Users>>, Task<IEnumerable<UsersViewModel>>>();