Asp.net mvc 列表<&燃气轮机;不包含GetWaiter的定义
我正在asp.net webapi项目中实现automapper。我还在业务层中实现了异步任务。我基本上想将MoviesDto对象而不是Movie实体返回,但是获取错误列表时不包含getAwaiter的定义Asp.net mvc 列表<&燃气轮机;不包含GetWaiter的定义,asp.net-mvc,asp.net-web-api,asp.net-mvc-5,automapper,Asp.net Mvc,Asp.net Web Api,Asp.net Mvc 5,Automapper,我正在asp.net webapi项目中实现automapper。我还在业务层中实现了异步任务。我基本上想将MoviesDto对象而不是Movie实体返回,但是获取错误列表时不包含getAwaiter的定义 return await _mapper.Map<List<MoviesDto>>(movies); 业务访问层 public class MovieBusiness: IMovieBusiness { IMovieService _movi
return await _mapper.Map<List<MoviesDto>>(movies);
业务访问层
public class MovieBusiness: IMovieBusiness
{
IMovieService _movieService;
IMapper _mapper;
public MovieBusiness(IMovieService movieService, IMapper mapper)
{
_movieService = movieService;
_mapper = mapper;
}
public async Task<IEnumerable<MoviesDto>> GetAllMovies()
{
var movies = _movieService.GetMovies();
return await _mapper.Map<List<MoviesDto>>(movies);
}
}
公共类电影业务:IMovieBusiness
{
IMovieService(电影服务);;
IMapper_映射器;
公共电影业务(IMovieService movieService,IMapper mapper)
{
_电影服务=电影服务;
_映射器=映射器;
}
公共异步任务GetAllMovies()
{
var movies=_movieService.GetMovies();
返回等待映射器.Map(电影);
}
}
方法\u mapper.Map()
不是异步的,因此您不必等待它
只需使用
return\u mapper.Map(电影)
将Map()
方法标记为async
是没有意义的,因为它不涉及I/O,并且可能无法阻塞。它是\u movieService.GetMovies()
最好是async
,应该是wait
ed。它不会编译,因为方法签名必须返回Task
,所以你的意思是我不能将automapper与asyn一起使用吗methods@Tom你可以。只需返回\u mapper.Map
(它将被编译)或使用Task.FromResult
。很抱歉,您没有收到。如果我只返回_Mapper.Map,它将不起作用,因为该方法的类型为async,并期望等待。你能给我举个Task.FromResult的例子吗
public class MovieBusiness: IMovieBusiness
{
IMovieService _movieService;
IMapper _mapper;
public MovieBusiness(IMovieService movieService, IMapper mapper)
{
_movieService = movieService;
_mapper = mapper;
}
public async Task<IEnumerable<MoviesDto>> GetAllMovies()
{
var movies = _movieService.GetMovies();
return await _mapper.Map<List<MoviesDto>>(movies);
}
}