Maison >développement back-end >C++ >Syntaxe fluide par rapport à l'expression de la requête dans LINQ: Quand dois-je utiliser lequel?
Requête LINQ : Comparaison de la syntaxe fluide et des expressions de requête
LINQ propose deux méthodes de requête : la syntaxe fluide et la syntaxe de l'expression de requête. Les deux peuvent implémenter des opérations de requête, mais ils sont différents dans les scénarios applicables.
Syntaxe courante
La syntaxe Fluent est similaire à C#, utilisant des chaînes de méthodes pour créer des requêtes. Pour les requêtes simples, il est généralement plus concis et a accès à tous les opérateurs de requête.
Syntaxe des expressions de requête
La syntaxe des expressions de requête est similaire à SQL, ce qui la rend plus facile à lire et à utiliser. Cela fonctionne bien dans les scénarios où plusieurs variables de portée sont requises, comme l'utilisation du mot-clé « let », plusieurs générateurs ou des requêtes de jointure.
Exemple : plusieurs variables de portée
Voici un exemple utilisant la syntaxe d'une expression de requête :
<code class="language-csharp">from fullName in fullNames from name in fullName.Split() orderby fullName, name select name + " came from " + fullName;</code>
Pour utiliser une syntaxe fluide, vous devez écrire comme ceci :
<code class="language-csharp">fullNames .SelectMany(fName => fName.Split().Select(name => new { name, fName })) .OrderBy(x => x.fName) .ThenBy(x => x.name) .Select(x => x.name + " came from " + x.fName);</code>
De toute évidence, la syntaxe de l'expression de requête est plus claire et plus facile à comprendre dans les cas où plusieurs variables de portée sont impliquées.
Mélanger
Pour combiner les avantages des deux syntaxes, elles peuvent être mélangées dans les requêtes LINQ. Par exemple :
<code class="language-csharp">var query = from c in db.Customers let totalSpend = c.Purchases.Sum(p => p.Price) // 此处使用方法语法 where totalSpend > 1000 from p in c.Purchases select new { p.Description, totalSpend, c.Address.State };</code>
Cet exemple utilise la syntaxe de la méthode dans l'opération "Somme" tout en conservant la lisibilité de la syntaxe de l'expression de requête dans la requête globale. La syntaxe à choisir dépend du scénario spécifique et des préférences personnelles. Une utilisation flexible des deux syntaxes peut améliorer la lisibilité et l'efficacité du code.
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!