Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 列表<&燃气轮机;不包含GetWaiter的定义_Asp.net Mvc_Asp.net Web Api_Asp.net Mvc 5_Automapper - Fatal编程技术网

Asp.net mvc 列表<&燃气轮机;不包含GetWaiter的定义

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

我正在asp.net webapi项目中实现automapper。我还在业务层中实现了异步任务。我基本上想将MoviesDto对象而不是Movie实体返回,但是获取错误列表时不包含getAwaiter的定义

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

    }