2010-04-14 2 views
1

J'ai 2 tables (Utilisateurs et Rôles) elles sont mappées comme Many-to-Many dans db relationnel . Lorsque j'ai importé vers Entity Data Content, ils restent comme la même relation.Entité LINQ sur many-to-many eu une erreur "LINQ to Entities ne reconnaît pas la méthode 'Boolean Contains ..."

Comme ils sont mis en correspondance comme Many-to-Many dans l'entité, je peux accéder à

Users.RoleCollection 
or 
Roles.UserCollection 

Cependant, quand j'exécute cette requête LINQ, je suis arrivé « LINQ to Entities ne reconnaît pas la méthode « Boolean Contient ... méthode, et cette méthode ne peut pas être traduite dans une expression de magasin. "

var result (from a in Users 
      from b in Roles 
      where a.RoleCollection.Contains(b) 
      select a); 

Je pense que je dois faire quelque chose de mal ... s'il vous plaît aider.

+1

similaires à http://stackoverflow.com/questions/374267/contains-workaround-using-linq-to-entities –

+0

Voir http://stackoverflow.com/questions/374267/contains-workaround-using-linq-to-entities –

+0

Non, c'est un cas d'utilisation différent pour 'Contains' (cette question utilise un' List', par opposition à une partie de la requête L2E. @Nix est correct ici. –

Répondre

3

Il suffit d'utiliser tout ....

 where a.RoleCollection.Any(x=>x.ID==b.ID) 

ou

 where a.RoleCollection.Any(x=>x==b) 
Questions connexes