ich in meiner Ansicht nach drei Spalten zeigen will, kombinieren:Asp.Net LINQ drei Tabellen
======================================
UserName | Email | Role Name
======================================
codelover12 [email protected] Student
kimmy45634 [email protected] Teacher
======================================
so zunächst, was ich dachte, dass
ich mit UserId
Id
in AspNetUsers
Tabelle beitreten kann in AspNetUserRoles
Tabelle, und auch beitreten Id
in AspNetRoles
so kann ich herausfinden, wer welche Rolle hat.
Ich war wie folgt versucht:
var model = from users in db.Users
join userRoles in db.AspNetUserRoles on users.Id equals roles.UserId
join role in db.Roles on role.Id equals userRoles.RoleId
select new { users.UserName, users.Email, role.Name };
aber herausgefunden, dass ich nicht AspNetUserRoles zugreifen kann. Ich würde Ihre Hilfe zu schätzen wissen.
Was genau meinen Sie mit "kann nicht auf AspNetUserRoles zugreifen"? Gibt Ihre Anfrage einen Fehler? Zumindest sollte es "user.Id equals userRoles.UserId" sein, obwohl Sie stattdessen die Verwendung von Navigationseigenschaften in Betracht ziehen sollten. – juharr
es gibt mir einen Fehler auf db.AspNetUserRoles sagen, dass ApplicationDbContext keine Definition für 'AspNetUserRoles' enthält – kkagill
Meine Vermutung ist, dass ist eine viele zu viele Tabelle, und EF erstellt keine Entitäten für diese. Stattdessen sollten Sie die Navigationseigenschaften verwenden. Etwas wie 'von Benutzer in db.Users von Rolle in user.Roles' – juharr