AutoMapper -自定义映射
本文关键字:映射 自定义 AutoMapper | 更新日期: 2023-09-27 18:12:04
我在使用AutoMapper设置从我的DB实体到我的视图模型的自定义映射时遇到了麻烦。
我的目标是映射ApplicationUser到我的ApplicationUserViewModel。
我像这样返回用户列表:
return View(Mapper.Map<IEnumerable<ApplicationUserViewModel>>(_userRepository.GetAllUsersWithRoles()));
在Startup.cs中,我的AutoMapper配置包括以下内容:
Mapper.Initialize(config =>
{
...
config.CreateMap<ApplicationUserViewModel, ApplicationUser>().ReverseMap();
});
我基本上想告诉AutoMapper自动设置我的ViewModel类(IsConnectedToFacebook)的以下属性为true,如果来自DB的ApplicationUser实体有一个登录存储在它与提供商facebook。所以像这样:
viewmodel.IsConnectedToFacebook = user.Logins.Any(login => login.LoginProvider == "Facebook");
这里是视图模型:
public class ApplicationUserViewModel
{
...
public bool IsConnectedToFacebook { get; set; }
}
非常感谢你的帮助!
尼克我让它在下面工作:
config.CreateMap<ApplicationUser, ApplicationUserViewModel>()
.ForMember(dest => dest.IsConnectedToFacebook,
src => src.MapFrom(s => s.Logins.Any(login => login.LoginProvider == "Facebook")));