0 votes

Entity Framework v1 Modélisation de la relation Many-to-Many Lookup Table Relationship

J'ai les tables de base de données suivantes :

Tableau 1 : Utilisateur
UserId
Nom d'utilisateur :

Tableau 2 : Rôle
RoleId
Nom de Rolename

Tableau 3 : UserRole
UserId
RoleId

Un utilisateur peut avoir plusieurs rôles et un rôle peut avoir plusieurs utilisateurs. Lorsque je modélise cela avec EF, j'obtiens une entité User avec une liste d'entités UserRole. Ce que je veux, c'est un utilisateur avec une liste d'entités Role.

Existe-t-il un moyen de modéliser ceci ou d'effectuer une requête via LINQ pour retourner une entité Utilisateur et les entités Rôle auxquelles elles appartiennent ?

Gracias
Dirk

0voto

Chrigl Points 123

Si vous modélisez une relation many-to-many, la table du milieu n'apparaîtra pas dans votre modèle conceptuel. (c'est-à-dire que vous n'aurez pas de classe "UserRole" dérivée de "EntityObject").

Si vous utilisez l'assistant EF, assurez-vous que votre table "UserRole" ne comporte que ces deux champs et aucun autre. Assurez-vous également que vous avez créé les contraintes de clé étrangère sur les deux champs. Si vous l'avez fait, l'assistant créera une relation many-to-many appropriée.

La requête ressemble alors probablement à quelque chose comme

using(MyObjectContext context = new MyObjectContext(someParameters)){
    var theUser = (from user in context.UserSet
                  where user.UserId = XY
                  select user).First();
    theUser.Roles.Load();
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X