Maison > développement back-end > Tutoriel C#.Net > Quelle est la différence entre IEnumerable et IQueryable en C# ?

Quelle est la différence entre IEnumerable et IQueryable en C# ?

王林
Libérer: 2023-09-03 19:57:08
avant
1015 Les gens l'ont consulté

C# 中 IEnumerable 和 IQueryable 有什么区别?

  • IEnumerable existe dans l'espace de noms System.Collections.
  • IQueryable existe dans le système. Espace de noms Linq.
  • IEnumerable et IQueryable sont tous deux des collections avancées.
  • IEnumerable ne prend pas en charge le chargement paresseux
  • IQueryable prend en charge le chargement paresseux
  • Lors de l'interrogation des données de la base de données, IEnumerable effectue une requête de sélection côté serveur, charge les données en mémoire côté client, puis filtre les données.
  • Pour interroger les données de la base de données, IQueryable effectue une sélection de requêtes côté serveur avec tous les filtres.
  • Les méthodes d'extension IEnumerable prennent des objets fonction.
  • La méthode d'extension IQueryable prend un objet d'expression signifiant arbre d'expression.

Exemple

IEnumerable

dbContext dc = new dbContext ();
IEnumerable
<SocialMedia>
list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
</SocialMedia>
Copier après la connexion

Instruction SQL générée pour la requête ci-dessus

SELECT [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0
Copier après la connexion

Queryable

dbContext dc = new dbContext ();
IQueryable<SocialMedia> list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
Copier après la connexion

Instruction SQL générée pour la requête ci-dessus

SELECT top 1 [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0
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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal