2010-12-22 4 views
1

Ich versuche eine Drop-Down-Liste zu erstellen, die verfügbare Optionen (dh eine Seitenkategorie, für die ein Benutzer eine Seite erstellen kann) für den angemeldeten Benutzer enthält. Diese basieren jedoch auf Benutzerrollen aufgrund der Art und Weise Unser Geschäft funktioniert - wobei ein Benutzer mehreren Rollen angehören kann und jeder Rolle unterschiedliche Optionen zur Auswahl in der Dropdown-Liste zugewiesen werden können.Mehrere Abfragen ausführen, dann mit LINQ verbinden?

Was ich für Benutzer mit mehreren Rollen tun möchte, ist, die Optionen jeder einzelnen Rolle zu kombinieren und sie als Werte für die Dropdown-Liste zu verwenden.

Was ich angenommen habe, ist, dass ich in der Lage sein würde, mehrere LINQ-Abfragen auszuführen, indem ich sie durch eine für jedes (For Each r In userRoles) laufen lasse und sie dann verbinde?

Obwohl ich nicht weiß, ob dies in der Art möglich ist, wie ich es versuche.

Ist es möglich oder belle ich den falschen Baum an?

Kann mir bitte jemand bitte bitte zeigen Sie mir in die richtige Richtung?

+0

Können Sie weitere Details anzeigen? Welche Optionen gibt es und wie hängen sie mit Benutzerrollen zusammen? –

+0

Aktualisiert basierend auf Kommentaren. – LiamGu

Antwort

0

Es klingt, als könnten Sie Benutzer bei Rollen und Optionen beitreten und dann auf Optionen gruppieren.

So etwas wie dieses

Dim userId = GetCurrentUserId 
Dim userOptions = From userRole In UserRoles 
       Join roleOption In RoleOptions 
       On userRole.roleId Equals roleOption.roleId And 
        userRole.userId Equals userId 
       Group By OptionId = roleOption.optioId, OptionName = roleOption.name 
       Into UserOptions = Group 
       Order By OptionName 

bin ich kein VB.NET-Codierer und das ist völlig ungetestet, aber hoffentlich bekommen Sie die Idee.