2016-04-19 6 views
1

Ich habe eine Tabelle namens UserRoles und ein Benutzer kann mehrere Rollen.Meine Struktur ist;EF-Liste zu Klasse

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; } 
    } 

Ich möchte sie in einem Raster nach UserID gruppiert anzeigen. Benötige ich eine neue Datenstruktur? PS: Ich erhalte Daten im Format List<UserRoles>.

+0

Sie sollten mehr Informationen in Ihrer Frage hinzufügen. Beispielsweise möchten Sie, dass die Rollen in der zweiten Spalte Ihres Rasters durch Kommas getrennt sind. Erwarten Sie unvollständige Antworten, wenn Sie unvollständige Fragen stellen. Stellen Sie also nicht nur mehr Informationen in Kommentaren zu Antworten bereit, sondern aktualisieren Sie auch Ihre Antwort. – QuantumHive

+0

Ich verstehe nicht, warum Leute eine so unklare Frage aufwerfen, die auch keine offensichtlichen Forschungsanstrengungen enthält. –

Antwort

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

Wenn Sie die Benutzer- oder Rollendetails nicht anzeigen müssen, entfernen Sie einfach Include.

EDIT

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

Entity Benutzer sollte Navigationseigenschaft Userroles haben:

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

Nein das möchte ich nicht. Ich möchte 1 Benutzer-ID und in der nächsten Spalte Rollen getrennt durch Komma auflisten. userId1 ---> Rolle1, Rolle2, Rolle3 – Egomen

+0

Habe meine Antwort aktualisiert – Mardok