【发布时间】:2017-11-20 22:32:42
【问题描述】:
我正在我的 asp.net webapi 项目中实现自动映射器。我还在业务层实现了异步任务。我基本上想返回 MoviesDto 对象而不是 Movie 实体,但得到一个错误列表不包含 getAwaiter 的定义。错误在行
return await _mapper.Map<List<MoviesDto>>(movies);
不确定是什么问题。下面是我的代码
MoviesDto
public class MoviesDto : BaseDto
{
public int MovieID { get; set; }
public string Title { get; set; }
public int? ReleaseYear { get; set; }
public string Plot { get; set; }
public int? MovieLength { get; set; }
}
业务访问层
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);
}
}
【问题讨论】:
-
将
Map()方法标记为async是没有意义的,因为它不涉及I/O 并且不可能阻塞。_movieService.GetMovies()最好是async,应该是awaited。
标签: asp.net-mvc asp.net-web-api asp.net-mvc-5 automapper