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
926 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!

source:tutorialspoint.com
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