- IEnumerable existiert im System.Collections-Namespace.
- IQueryable existiert im System. Linq-Namespace.
- IEnumerable und IQueryable sind beide Vorwärtssammlungen.
- IEnumerable unterstützt kein verzögertes Laden.
- IQueryable unterstützt verzögertes Laden.
- Beim Abfragen von Daten aus der Datenbank führt IEnumerable eine Auswahlabfrage auf der Serverseite durch, lädt die Daten auf der Clientseite in den Speicher und filtert sie dann.
- Um Daten aus der Datenbank abzufragen, führt IQueryable eine ausgewählte Abfrage auf der Serverseite mit allen Filtern durch.
- IEnumerable-Erweiterungsmethoden akzeptieren Funktionsobjekte.
- Die IQueryable-Erweiterungsmethode benötigt ein Ausdrucksobjekt, das einen Ausdrucksbaum bedeutet.
Beispiel
IEnumerable
dbContext dc = new dbContext ();
IEnumerable
<SocialMedia>
list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
</SocialMedia>
Nach dem Login kopieren
SQL-Anweisung, die für die obige Abfrage generiert wurde
SELECT [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0
Nach dem Login kopieren
Queryable
dbContext dc = new dbContext ();
IQueryable<SocialMedia> list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
Nach dem Login kopieren
SQL-Anweisung, die für die obige Abfrage generiert wurde
SELECT top 1 [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0
Nach dem Login kopieren
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen IEnumerable und IQueryable in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!