Error using AutoMapper with asynchronous method

4.2k Views Asked by At

I'm using AutoMapper with asynchronous method in repository. I set needed map in AutoMapperConfig as Mapper.CreateMap<Users, UsersViewModel>(); Unfortunately I got this error:

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]].

Here is how I call mapping:

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);
}

How can I fix that?

1

There are 1 best solutions below

0
On BEST ANSWER

change in your AutoMapperConfig as

Mapper.CreateMap<Task<IEnumerable<Users>>, Task<IEnumerable<UsersViewModel>>>();