【发布时间】:2020-06-12 13:10:56
【问题描述】:
目前,我有这个 Web Api 方法,它可以手动将我的实体映射到 DTO 对象,它可以正常工作。现在,我想实现我已经安装在ConfigureServices 方法中注册的 AutoMapper,并在我的 Web Api 控制器构造函数中创建了 AutoMapper 配置文件类并注入了 automapper。
这是我没有 AutoMapper 的手动映射
[HttpGet]
public async Task<ActionResult<IEnumerable<MovieDto>>> GetMovies()
{
//manual mapping which can be replaced with Automapper
var movies = (from m in _context.Movies
select new MovieDto()
{
Id = m.Id,
MovieTitle = m.MovieTitle,
ReleaseDate = m.ReleaseDate,
MovieStatus = m.MovieStatus,
PhotoFile = m.PhotoFile
}).ToListAsync();
return await movies;
}
这就是我尝试添加自动映射器以替换手动映射的方式。
[HttpGet]
public async Task<ActionResult<IEnumerable<MovieDto>>> GetMovies()
{
return _mapper.Map<IEnumerable<MovieDto>>(_context.Movies);
}
但是,它遇到错误Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<CinemaApp.NETCore31.WebAPI.Models.MovieDto>' to 'Microsoft.AspNetCore.Mvc.ActionResult<System.Collections.Generic.IEnumerable<CinemaApp.NETCore31.WebAPI.Models.MovieDto>>'
【问题讨论】:
-
=> _mapper.Map<IEnumerable<MovieDto>>(await _context.Movies.ToListAsync()); -
@LucianBargaoanu 我试过了,但还是一样的错误
-
如果
ProjectTo有效,那就最好了。
标签: c# automapper