Apakah perbezaan antara IEnumerable dan IQueryable dalam C#?

王林
Lepaskan: 2023-09-03 19:57:08
ke hadapan
898 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!

sumber:tutorialspoint.com
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