Maison > développement back-end > C++ > Les requêtes LINQ to SQL peuvent-elles renvoyer des types anonymes comme résultats ?

Les requêtes LINQ to SQL peuvent-elles renvoyer des types anonymes comme résultats ?

Susan Sarandon
Libérer: 2025-01-28 00:26:09
original
741 Les gens l'ont consulté

Can LINQ to SQL Queries Return Anonymous Types as Results?

LINQ to SQL peut-il renvoyer des types anonymes comme résultats ?

Dans LINQ to SQL, comment interroger plusieurs tables et combiner les résultats avec des types anonymes ?

Tentative initiale utilisant des types anonymes

L'exemple suivant, utilisant deux tables Dogs et Breeds, tente de récupérer tous les chiens et leurs BreedName correspondants en utilisant un type anonyme :

<code class="language-csharp">public IQueryable<dog> GetDogsWithBreedNames()
{
    var db = new DogDataContext(ConnectString);
    var result = from d in db.Dogs
                 join b in db.Breeds on d.BreedId equals b.BreedId
                 select new
                        {
                            Name = d.Name,
                            BreedName = b.BreedName
                        };
    return result;
}</dog></code>
Copier après la connexion

Cependant, cela échoue car le compilateur s'attend à ce que Dogs soit renvoyé, et non un type anonyme.

Type personnalisé

Une solution consiste à créer un type personnalisé pour représenter le chien avec le nom de la race :

<code class="language-csharp">public class DogWithBreed
{
    public Dog Dog { get; set; }
    public string BreedName  { get; set; }
}</code>
Copier après la connexion

Utiliser le type personnalisé

Grâce à ce type personnalisé, les requêtes peuvent être modifiées pour renvoyer les résultats souhaités :

<code class="language-csharp">public IQueryable<dogwithbreed> GetDogsWithBreedNames()
{
    var db = new DogDataContext(ConnectString);
    var result = from d in db.Dogs
                 join b in db.Breeds on d.BreedId equals b.BreedId
                 select new DogWithBreed()
                        {
                            Dog = d,
                            BreedName = b.BreedName
                        };
    return result;
}</dogwithbreed></code>
Copier après la connexion

Cette approche fournit un moyen sûr et réutilisable de combiner les résultats de plusieurs tables à l'aide de types personnalisés. Cela évite les problèmes d’incompatibilité de types rencontrés lors de l’utilisation de types anonymes.

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