2016-06-21 7 views
0

성별의 데이터를 비롯하여 데이터베이스의 일부 기본 데이터에 대해 열거 형을 사용하고 있습니다. 예를 들어 남자 id은 10이고 여자는 11입니다.
나는 EF을 사용합니다.
User 엔티티에서 나는이 성별 Id을 사용할 것입니다.
나는 모델으로 보기에 사용자 개체를 사용합니다.
내 접근 방식은 MVC에서 컨트롤러에 조인을 사용하고 있습니다.
내보기의 사용자에 대한 검색 결과를 표시해야합니다. 사용자 모델을 사용하면 결과에 성별 ID가 표시되며 확인되지 않습니다. Id와 Title의 유형이 같지 않기 때문에. 따라서 LINQ를 사용하여 Id를 Title로 바꿀 수는 없습니다.
어떻게 결과에서 성 제목을 설정할 수 있습니까? enter image description hereMVC : 매핑을 사용하여 모델을 변경합니다.보기에 사용 된 특정 유형입니다.

답변

0

오토 맵퍼와 뷰 모델을 사용하여 문제를 해결했습니다. 하지만 Automapper 5.0.0.0을 설치했습니다.
또한 메인 엔티티와 동일한 View-Model을 정의했지만 Gender 유형을 정의했습니다. 보기 모델에서 성별은 문자열입니다.

 var Data= Search(user); //get search result using any approach, maybe a service or etc 

     var config = new MapperConfiguration(cfg => cfg.CreateMap<User, VM_User>() 
      .ForMember(vm => vm.GENDER, opt => opt.MapFrom(u => u.GENDER == 10 ? "Male" : "Female"))); 


     List<VM_User> users = new List<VM_User>(); 
     for (int i = 0; i < Data.Count; i++) 
     { 
      users.Add(config.CreateMapper().Map<VM_User>(Data[i])); 
     } 

그런 다음보기에서 사용자를 검색 결과로 사용했습니다.
또한, 나는 타사 (AutoMapper)를 사용하여 잊을 수와 forexample 있습니다

var result = Data.Select(x => new VM_User 
     { 
      Name = x.Name, 
      Code = x.Code, 
      Gender = x.Gender == 10 ? "Male" : "Female" 
     }).ToList(); 

을하지만 엔터티의 속성을 코딩하는 동안 변경되지 않습니다 확신 경우에 유용합니다.

+0

다른 방법이 있다면 공유하십시오 :) – Elnaz