2016-10-08 3 views
0

У меня возникли проблемы с настройкой пользовательского сопоставления из моего объекта СУБД в мою модель просмотра с использованием AutoMapper.AutoMapper - Пользовательские сопоставления

Моя цель состоит в том, чтобы сопоставить 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, если сущность ApplicationUser из БД имеет вход, хранящийся против него, с помощью провайдера facebook. Так somethink так:

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

Здесь модели представления:

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

Большое вам спасибо за вашу помощь!

Nik

ответ

1

Я получил это работает с ниже:

config.CreateMap<ApplicationUser, ApplicationUserViewModel>() 
        .ForMember(dest => dest.IsConnectedToFacebook, 
         src => src.MapFrom(s => s.Logins.Any(login => login.LoginProvider == "Facebook"))); 
Смежные вопросы