【问题标题】:AutoMapper - Custom MappingsAutoMapper - 自定义映射
【发布时间】:2017-02-17 05:41:41
【问题描述】:

我在使用 AutoMapper 设置从我的数据库实体到我的视图模型的自定义映射时遇到了麻烦。

我的目标是将 ApplicationUser 映射到我的 ApplicationUserViewModel

我正在返回这样的用户列表:

return View(Mapper.Map<IEnumerable<ApplicationUserViewModel>>(_userRepository.GetAllUsersWithRoles()));

在 Startup.cs 我的 AutoMapper 配置包括以下内容:

Mapper.Initialize(config =>
{
   ...
   config.CreateMap<ApplicationUserViewModel, ApplicationUser>().ReverseMap();
});

如果数据库中的 ApplicationUser 实体通过提供程序 facebook 存储了一个登录名,我基本上想告诉 AutoMapper 自动将我的 ViewModel 类 (IsConnectedToFacebook) 的以下属性设置为 true。所以有人这样想:

viewmodel.IsConnectedToFacebook = user.Logins.Any(login => login.LoginProvider == "Facebook");

这里是视图模型:

public class ApplicationUserViewModel
{
   ...
   public bool IsConnectedToFacebook { get; set; }
}

非常感谢您的帮助!

尼克

【问题讨论】:

    标签: c# .net asp.net-core mapping automapper


    【解决方案1】:

    我得到了它与下面的合作:

    config.CreateMap<ApplicationUser, ApplicationUserViewModel>()
                        .ForMember(dest => dest.IsConnectedToFacebook,
                            src => src.MapFrom(s => s.Logins.Any(login => login.LoginProvider == "Facebook")));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-20
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 2017-08-09
      相关资源
      最近更新 更多