Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist der Unterschied zwischen IEnumerable und IQueryable in C#?

Was ist der Unterschied zwischen IEnumerable und IQueryable in C#?

王林
王林nach vorne
2023-09-03 19:57:08907Durchsuche

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

  • 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>

SQL-Anweisung, die für die obige Abfrage generiert wurde

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);

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen