2016-10-08 1 views
0

AutoMapper를 사용하여 내 DB 엔터티에서 내보기 모델로 사용자 지정 매핑을 설정하는 데 문제가 있습니다.AutoMapper - 사용자 지정 매핑

내 목표는 내 ApplicationUserViewModelApplicationUser를 매핑하는 것이다.

이 같은 사용자의 목록을 반환하고 있습니다 :

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

그리고 나는 기본적으로 자동으로 설정하는 AutoMapper을 말하고 싶어 다음 Startup.cs에서

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

을 내 AutoMapper 구성은 아래에 포함 내 ViewModel 클래스의 아래 속성 (IsConnectedToFacebook)은 DB의 ApplicationUser 엔터티에 공급자 페이스 북과 함께 Login이 저장된 경우 true로 설정됩니다. 그래서 다음과 같이 somethink :

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

는 당신의 도움을 주셔서 감사합니다 다음은 뷰 모델

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

!

답변

1

나는 그것이 아래 작업 있어요 :

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