2012-12-28 23 views
6

Ich habe eine Datenbank, in der Benutzer mehreren Rollen angehören können und Rollen mehrere Berechtigungen haben können. Beide Beziehungen sind viele zu viele. Ich möchte Abfrage und generieren Sie eine Liste der Auslassungen, die ein Benutzer hat. Ich versuche, dies zu erreichen, indem ich die Rolle-Tabelle abfrage, um zu sehen, welche Rollen der Benutzer ein Mitglied ist, und dann möchte ich abfragen und sehen, welche unterschiedlichen Berechtigungen jede Rolle enthält. Jedoch kann ich nicht scheinen, dass die LINQ korrekt ist.Entity Framework Abfragen einer Beziehung von vielen zu vielen Beziehungen

Der obige Code gibt mir eine Liste der Berechtigungen, ich möchte nur eine Liste von Berechtigungen. Gibt es überhaupt (in LINQ) die Vereinigung all dieser Listen? Oder gibt es einen besseren Weg, dies zu erreichen?

+0

Der obige Code gibt mir eine Liste der Berechtigungen, ich möchte nur eine Liste von Berechtigungen? – Derek

+0

Ich denke [this] (http://stackoverflow.com/questions/5587288/many-to-many-query-in-entity-framework-4) wird Ihr Problem lösen. – saber

Antwort

6

Verwenden SelectMany Stattdessen flacht SelectMany Abfragen, die diese Listen von Listen

So Versuchen zurück:

var permissions = RoleRepository.Get().Where(x => x.Users.Contains(user)) 
           .SelectMany(x => x.Permissions); 

Hope this helfen !!

+0

Ja, die jede Liste in eine flacher machen. Danke vielmals! –

Verwandte Themen