2009-04-29 5 views
0

table enregistrée a stuctureMarque sous_requête LINQ

regid 
userid 

var Registered = form r in dc.registered where ... // list contains userid as f.k. 

Je veux la liste des utilisateurs qui a enregistré.

si requête comme

var user = from u in dc.users where u.userid in // should contains in Register.userid 

Je veux en savoir plus sur LINQ où je peux trouver les meilleures étoffes?

Répondre

0

Je suppose que vous voulez:

var users = from u in dc.users 
      join r in Registered on u.userid equals r.userid 
      select u; 

Notez que ce sera plus efficace qu'une solution « tout » comme il construira l'ensemble des ID utilisateur enregistrés une fois (comme HashSet) à quel point la test pour chaque utilisateur est rapide.

+0

Je ne sais pas pourquoi mais ne fonctionne toujours pas. Je sépare 'Var Registered' car il a aussi une certaine filtration. – Vikas

+0

"Ne fonctionne pas" est assez vague. Est-ce qu'il compile? Si oui, quels résultats cela donne-t-il? Trop? Trop peu? Le mauvais type de résultat? –

+0

Ok, je l'ai résolu. obtenir de l'aide de LINQPad – Vikas

0

Vous pouvez faire quelque chose comme:

var innerQuery = from r in dc.Registered 
       select r; 

var outerQuery = from k in dc.Users 
       where (innerQuery).Any(x => x.UserID == k.UserID) 
       select k; 

Je ne sais pas si elle est tout à fait correct en ce qui concerne la syntaxe, mais cela est une façon de le faire dans les sous-requêtes LINQ. En tout cas, cela devrait vous orienter dans la bonne direction.

A propos de l'apprentissage LINQ, cela est une autre question qui gère le même: What are some good LINQ resources.

Questions connexes