2016-06-21 58 views
0

中使用的某種屬性類型我有一個數據庫中的一些基礎數據的枚舉,其中包括性別數據。例如,男士id是10,女士是11.
我使用EF
User實體中,我將使用此性別Id
我將使用用戶實體作爲模型對於查看
我的方法是使用MVC中的連接控制器不在db
我必須在我的視圖中顯示用戶的搜索結果。如果我使用用戶模型,結果將顯示性別的ID,並且不正確。由於Id和Title的類型不同。所以不可能使用LINQ並用標題替換ID。
如何設置結果中的性別標題? enter image description hereMVC:使用映射來更改模型。查看

回答

0

我使用Automapper和view-model來解決問題。但我已經安裝了Automapper 5.0.0.0。
另外我定義了一個視圖模型,它與主要實體相同,但是性別類型相同。在視圖模型中性別是字符串。

 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