2016-04-19 7 views
1

私はUserRolesという名前のテーブルを持っています。ユーザーは複数のRoles.My構造を持つことができます。EFリストクラス

public class UserRole 
    { 
     [Key, Column("ID")] 
     public long Id { get; set; } 

     [ForeignKey("UserId")] 
     public User User { get; set; } 

     [Column("USERID")] 
     public long UserId { get; set; } 

     [ForeignKey("RoleId")] 
     public Role Role { get; set; } 

     [Column("ROLEID")] 
     public long RoleId { get; set; } 
    } 

ユーザーIDでグループ化されたグリッドに表示したいのですが、新しいデータ構造が必要ですか? PS:List<UserRoles>形式でデータを取得しています。

+0

あなたは、あなたの質問に多くの情報を追加する必要があります。たとえば、グリッドの2番目の列にカンマで区切られたロールを追加するとします。あなたが不完全な質問をした場合、不完全な答えを得ることを期待してください。コメントだけでなく、回答を更新してください。 – QuantumHive

+0

私は人々が明らかな研究努力の欠如しているような不明瞭な質問をなぜ耳にしているのか理解できません。 –

答えて

0
db.UserRoles.Include("User").Include("Role").OrderBy(ur => ur.UserId).ToList(); 

ユーザーまたは役割の詳細を表示する必要がない場合は、[含む]を削除してください。

EDIT

db.Users.Include("UserRoles.Role").Select(u => new { u.UserId, Roles = string.Join(",", u.UserRoles.Select(ur => ur.Role.RoleId)) }).ToList(); 

エンティティユーザは、ナビゲーションプロパティUserRolesを持っている必要があります。

public virtual List<UserRole> UserRoles { get; set; } 
+0

いいえ、これは私が欲しいものではありません。 1つのユーザーIDと次の列の役割をコンマで区切ってリストします。 userId1 ---> role1、role2、role3 – Egomen

+0

私の回答を更新しました – Mardok