Exécuter plusieurs requêtes puis l'union avec les LINQ?
-
12-10-2019 - |
Question
Je suis en train de construire une liste déroulante qui contient les options disponibles (soit une catégorie de pages qu'un utilisateur peut créer une page pour) pour la Cependant, ceux-ci sont, utilisateur connecté basées sur les rôles des utilisateurs en raison de la nature comment nos travaux d'affaires -. dont un utilisateur peut appartenir à plusieurs rôles et chaque rôle peut avoir différentes options à choisir dans la liste déroulante
Ce que je voudrais faire pour les utilisateurs qui sont des rôles multiples est de combiner les options de chaque rôle individuel et l'utiliser comme les valeurs de la liste déroulante.
Ce que je suppose que je serais en mesure d'exécuter plusieurs requêtes LINQ par exemple les cours d'exécution à travers un pour chaque (For Each r In userRoles
) puis les unioning?
Bien que je ne sais pas si cela est possible dans la façon dont je suis en train de le faire.
Est-il possible ou suis-je aboyer le mauvais arbre?
Quelqu'un peut-il s'il vous plaît s'il vous plaît s'il vous plaît me pointer dans la bonne direction?
La solution
On dirait que vous pouvez joindre à l'utilisateur sur les rôles et les options, puis groupe sur les options.
Quelque chose comme ceci
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
Je ne suis pas un codeur VB.NET et qui est totalement non testé, mais nous espérons que vous avez l'idée.