[英]Mapping two classes in a query in Automper Asp.net core
我有两个类,一个是实体,另一个是视图 model,我想在查询时将 map 与自动映射器在所需的服务中相互连接,这样我就可以使用 IQueryable 提供的延迟加载功能,但是我不知道该怎么做。
映射配置文件:
CreateMap<User, EditProfileViewModel>();
如果我不使用 automapper,我的代码将如下所示:
public Task<EditProfileViewModel> GetUserForEditProfileAsync(int userId)
=> _users.Select(u => new EditProfileViewModel()
{
Id = u.Id,
DisplayName = u.DisplayName,
Email = u.Email,
UserName = u.UserName
}).SingleOrDefaultAsync(u => u.Id == userId);
_users: DbSet<User>
我如何使用 autoMapper 实现它?
相应地进行更改。
public class AccountController : Controller
{
private IMapper mapper;
public AccountController(IMapper mapper)
{
this.mapper = mapper;
}
public Task<EditProfileViewModel> GetUserForEditProfileAsync(int userId)
{
var user = await _users.SingleOrDefaultAsync(u => u.Id == userId);
return mapper.map<EditProfileViewModel>(user)
}
}
您必须需要具有相同的属性签名,否则您必须根据需要配置每个属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.