Maison > développement back-end > C++ > SELECT VS. SELECTMANY EN LINQ à SQL: Quand dois-je utiliser lequel?

SELECT VS. SELECTMANY EN LINQ à SQL: Quand dois-je utiliser lequel?

Barbara Streisand
Libérer: 2025-01-28 17:41:12
original
987 Les gens l'ont consulté

Select vs. SelectMany in LINQ to SQL: When Should I Use Which?

Les différences et les scénarios d'application de SelectMany dans linq à sql

Lorsque vous utilisez LINQ à SQL, il est important de comprendre la différence entre

et

. Select Il est utilisé pour récupérer un seul élément de l'ensemble de données, et SelectMany les résultats de la requête utilisés pour aplatir l'ensemble imbriqué. Select SelectMany Les exemples suivants expliqueront les différences entre les deux plus clairement:

En supposant que nous avons une classe

qui contient un attribut

, qui renvoie un ensemble d'une instance Person. Afin de récupérer tous les numéros de téléphone de tout le personnel, nous pouvons utiliser PhoneNumbers: PhoneNumber Select

Cependant, contient la collection de chaque liste de numéros de téléphone, ce qui peut ne pas être le résultat que nous voulons. Afin d'aplatir ces données imbriquées et d'obtenir une liste complète des numéros de téléphone, nous utilisons
<code class="language-csharp">IEnumerable<Person> people = new List<Person>();

// Select: 返回一个电话号码列表的列表
IEnumerable<IEnumerable<PhoneNumber>> phoneLists = people.Select(p => p.PhoneNumbers);</code>
Copier après la connexion
:

phoneLists SelectMany De plus, si nous voulons inclure les données du père

au résultat, nous pouvons utiliser la charge lourde
<code class="language-csharp">// SelectMany: 将集合扁平化为一个电话号码列表
IEnumerable<PhoneNumber> phoneNumbers = people.SelectMany(p => p.PhoneNumbers);</code>
Copier après la connexion
:

Person SelectMany En comprenant la différence entre et

, vous pouvez faire fonctionner efficacement les données dans la requête LINQ vers SQL pour récupérer et agréger avec précision les informations requises.
<code class="language-csharp">// 带结果选择器的 SelectMany: 在结果中包含父数据
var directory = people
    .SelectMany(p => p.PhoneNumbers,
                (parent, child) => new { parent.Name, child.Number });</code>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal