- IEnumerable tồn tại trong Không gian tên System.Collections.
- IQueryable tồn tại trong Hệ thống. Linq Namespace.
- Cả IEnumerable và IQueryable đều là bộ sưu tập chuyển tiếp.
- IEnumerable không hỗ trợ tải chậm
- IQueryable hỗ trợ tải chậm
- Truy vấn dữ liệu từ cơ sở dữ liệu, IEnumerable thực hiện một truy vấn chọn lọc ở phía máy chủ, tải dữ liệu trong bộ nhớ ở phía máy khách rồi lọc dữ liệu.
- Truy vấn dữ liệu từ cơ sở dữ liệu, IQueryable thực hiện truy vấn chọn lọc ở phía máy chủ với tất cả các bộ lọc.
- Các phương thức Tiện ích mở rộng IEnumerable sử dụng các đối tượng chức năng.
- Phương thức mở rộng IQueryable sử dụng các đối tượng biểu thức có nghĩa là cây biểu thức.
Ví dụ
IEnumerable
dbContext dc = new dbContext ();
IEnumerable
<SocialMedia>
list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
</SocialMedia>
Câu lệnh Sql được tạo cho truy vấn trên
SELECT [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0
IQueryable
dbContext dc = new dbContext ();
IQueryable<SocialMedia> list = dc.SocialMedias.Where(p => p.Name.StartsWith("T"));
list = list.Take<SocialMedia>(1);
Câu lệnh Sql được tạo cho truy vấn trên
SELECT top 1 [t0].[ID], [t0].[Name] FROM [SocialMedia] AS [t0]
WHERE [t0].[Name] LIKE @p0