将 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>>>();