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

Apakah perbezaan antara IEnumerable dan IQueryable dalam C#?

王林
Lepaskan: 2023-09-03 19:57:08
ke hadapan
1023 orang telah melayarinya

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>
Salin selepas log masuk

Sql statement dijana untuk pertanyaan di atas

SELECT [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0
Salin selepas log masuk

Queryable

dbContext dc = new dbContext ();
IQueryable<SocialMedia> list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
Salin selepas log masuk

Sql statement dijana untuk pertanyaan di atas

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

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 Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan