2016-12-14 6 views
0

私は、ユーザーの詳細を持つページリストを使用しています。ロールテーブルからロールを取得するために使用するUserRoleテーブルからIDを取得するロールを除いて、すべての詳細はUserテーブルから取得されます。 1人のユーザーが複数の役割を果たす可能性があります。したがって、基本的にUserRoleテーブルには、UserテーブルとRoleテーブルを接続する外部キーとしてUserIDとRoleIDがあります。複数の外部キーへの自動マッピング

だから私は持っているコードはRolesListがIEnumerableをされ

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

です。

複数の外部キーの場合はどうすればよいですか?

EDIT:変更されたコードは今や役割を与えますが、複数の役割を持つユーザーの場合でも、私にはまだ1つの役割しか与えません。特定のユーザーのためにすべての役割を果たすことができる方法はありますか?

+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())); 
       }); 
関連する問題