Maison >base de données >tutoriel mysql >Comment implémenter efficacement les sous-requêtes IN dans LINQ to SQL ?
Gestion des sous-requêtes IN dans LINQ to SQL
L'utilisation des sous-requêtes IN dans LINQ to SQL peut être un moyen efficace de corréler les données à partir de plusieurs tables. Voici comment l'aborder :
Implémentation générale d'une requête IN :
Pour implémenter une requête IN dans LINQ to SQL, suivez cette syntaxe :
var q = from t1 in table1 let t2s = from t2 in table2 where <Conditions for table2> select t2.KeyField where t2s.Contains(t1.KeyField) select t1;
Exemple spécifique :
Revoyons l'exemple SQL requête :
SELECT f.* FROM Foo f WHERE f.FooId IN ( SELECT fb.FooId FROM FooBar fb WHERE fb.BarId = 1000 )
Dans LINQ to SQL, cela se traduirait par :
var query = from f in db.Foo let fubars = from fb in db.FooBar where fb.BarId == 1000 select fb.FooId where fubars.Contains(f.FooId) select f;
Considérations supplémentaires :
Pour les requêtes EXISTS, vous peut utiliser la méthode Any() au lieu de Contains() :
var q = from t1 in table1 let t2s = from t2 in table2 where <Conditions for table2> select t2.KeyField where t2s.Any(t1.KeyField) select t1;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!