2016-12-14 142 views
0

我正在使用具有用戶詳細信息的分頁列表。所有細節都來自User表,除了我從UserRole表中獲取ID的角色,我使用它來從角色表中獲取角色。一個用戶有多個角色的機會。所以基本上,UserRole表具有UserID和RoleID作爲連接用戶和角色表的外鍵。映射到多個外鍵的自動映射器

讓我的代碼是

config = new MapperConfiguration(cfg => 
       { 
        cfg.CreateMap<User, UserViewModel>().ForMember(m => m.RolesList, opt => opt.MapFrom(source => (source.UserRoles.Select(w=>w.Role.Name).ToList()))); 
       }); 

的RolesList是一個IEnumerable。

我該如何處理多個外鍵的情況?

編輯:修改後的代碼現在提供角色,但在具有多個角色的用戶的情況下,它仍然只給我一個角色。有沒有一種方法可以獲得特定用戶的所有角色?

+0

'source.UserRoles'是一個IEnumerable嗎? –

回答

0

我能夠使用普通的Linq查詢找到解決方案。

config = new MapperConfiguration(cfg => 
       { 
        cfg.CreateMap<User, UserViewModel>().ForMember(m=>m.UserRolesList, opt => opt.MapFrom(source =>source.UserRoles.Where(w=>w.UserId==source.Id).Select(w=>w.Role.Name).ToList())); 
       });