Rumah >pembangunan bahagian belakang >Tutorial C#.Net >Apakah perbezaan antara IEnumerable dan IQueryable dalam C#?

Apakah perbezaan antara IEnumerable dan IQueryable dalam C#?

王林
王林ke hadapan
2023-09-03 19:57:08952semak imbas

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

  • Ibilangan wujud dalam ruang nama System.Collections.
  • IQueryable wujud dalam Sistem. Ruang nama Linq.
  • IEnumerable dan IQueryable kedua-duanya adalah koleksi hadapan.
  • IEnumerable tidak menyokong pemuatan malas
  • IQueryable menyokong pemuatan malas
  • Apabila menanyakan data daripada pangkalan data, IEnumerable melakukan pertanyaan pilihan pada bahagian pelayan, memuatkan data ke dalam memori pada bahagian klien, dan kemudian menapis data.
  • Untuk menanya data daripada pangkalan data, IQueryable melaksanakan bahagian pelayan pertanyaan terpilih dengan semua penapis.
  • Iebilangan kaedah sambungan mengambil objek fungsi.
  • Kaedah sambungan IQueryable mengambil objek ekspresi yang bermaksud pokok ekspresi.

Contoh

IEnumerable

dbContext dc = new dbContext ();
IEnumerable
<SocialMedia>
list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
</SocialMedia>

Sql statement dijana untuk pertanyaan di atas

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 statement dijana untuk pertanyaan di atas

SELECT top 1 [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0

Atas ialah kandungan terperinci Apakah perbezaan antara IEnumerable dan IQueryable dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam