- IEnumerable มีอยู่ในเนมสเปซ System.Collections
- มี IQueryable อยู่ในระบบ เนมสเปซ Linq
- ทั้ง IEnumerable และ IQueryable เป็นคอลเล็กชันที่ส่งต่อ
- IEnumerable ไม่รองรับการโหลดแบบ Lazy Loading
- IQueryable รองรับการโหลดแบบ Lazy Loading
- การสืบค้นข้อมูลจากฐานข้อมูล IEnumerable ดำเนินการค้นหาแบบเลือกข้อมูลในฝั่งเซิร์ฟเวอร์ โหลดข้อมูลในหน่วยความจำทางฝั่งไคลเอ็นต์ แล้วกรองข้อมูล
- การสืบค้นข้อมูลจากฐานข้อมูล IQueryable ดำเนินการค้นหาแบบ Select ที่ฝั่งเซิร์ฟเวอร์พร้อมตัวกรองทั้งหมด
- เมธอด IEnumerable Extension ดึงออบเจ็กต์ที่ใช้งานได้
- วิธีการขยาย IQueryable ใช้วัตถุนิพจน์หมายถึงต้นไม้นิพจน์
ตัวอย่าง
จำนวนนับได้
dbContext dc = new dbContext ();
IEnumerable
<SocialMedia>
list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
</SocialMedia>
คำสั่ง SQL ที่สร้างขึ้นสำหรับข้อความค้นหาด้านบน
SELECT [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0
สืบค้นได้
dbContext dc = new dbContext ();
IQueryable<SocialMedia> list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
คำสั่ง SQL ที่สร้างขึ้นสำหรับข้อความค้นหาด้านบน
SELECT top 1 [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0