我在使用 AutoMapper 设置从我的数据库实体到我的 View 模型的自定义映射时遇到问题。
我的目标是将 ApplicationUser 映射到我的 ApplicationUserViewModel。
我正在返回这样的用户列表:
return View(Mapper.Map<IEnumerable<ApplicationUserViewModel>>(_userRepository.GetAllUsersWithRoles()));
在 Startup.cs 中,我的 AutoMapper 配置包括以下内容:
Mapper.Initialize(config =>
{
...
config.CreateMap<ApplicationUserViewModel, ApplicationUser>().ReverseMap();
});
我主要是想告诉 AutoMapper,如果数据库中的 ApplicationUser 实体使用提供者 facebook 存储了针对它的登录信息,则自动将我的 ViewModel 类 (IsConnectedToFacebook) 的以下属性设置为 true。所以像这样想:
viewmodel.IsConnectedToFacebook = user.Logins.Any(login => login.LoginProvider == "Facebook");
这里是 View 模型:
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")));
关于c# - AutoMapper - 自定义映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39930528/