- 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>
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
Queryable
dbContext dc = new dbContext ();
IQueryable<SocialMedia> list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
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
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!