Maison > développement back-end > C++ > Sélectionnez Vs. SelectMany dans Linq à SQL: Quelle est la différence?

Sélectionnez Vs. SelectMany dans Linq à SQL: Quelle est la différence?

Susan Sarandon
Libérer: 2025-01-28 18:01:10
original
641 Les gens l'ont consulté

Select vs. SelectMany in LINQ to SQL: What's the Difference?

linq à sql: compréhension Select et SelectMany

linq (Language Integrated Query) simplifie la question de l'interrogation de diverses sources de données, y compris des bases de données SQL, en utilisant une syntaxe de langage de programmation familière. Deux méthodes clés Linq, Select et SelectMany, offrent des fonctionnalités distinctes.

Select expliqué

Select transforme chaque élément d'une séquence source en une nouvelle forme, créant une nouvelle séquence tout en maintenant l'ordre d'élément d'origine. En termes SQL, Select reflète la clause SELECT.

SelectMany expliqué

SelectMany Fonctionne avec des séquences contenant des collections (séquences imbriquées). Il aplatit cette structure imbriquée, projetant chaque élément des collections intérieures en une seule séquence unifiée. Ceci est analogue à un SQL CROSS JOIN.

Exemple illustratif

Comparons Select et SelectMany avec un scénario Linq à SQL:

<code class="language-csharp">public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public List<Address> Addresses { get; set; }
}

public class Address
{
    public int AddressId { get; set; }
    public string StreetAddress { get; set; }
    public string City { get; set; }
}

// Using Select
var personNames = db.Persons.Select(p => p.Name);

// Using SelectMany
var personAddresses = db.Persons.SelectMany(p => p.Addresses);</code>
Copier après la connexion

Select donne une séquence de noms de personnes (chaînes). SelectMany, cependant, produit une séquence aplatie de tous les objets Address de toutes les personnes, éliminant la structure imbriquée.

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