Iqueryable Là Gì

  -  
Bạn đang xem: Sự Khác Nhau Giữa Ienumerable Và Iqueryable Là Gì, Sự Khác Biệt Giữa Iqueryable Và Ienumerable Là Gì Tại Cộng đồng in ấn

31 thg 10, 2008Nirmal và IEnumerable là gì?” href=”https://stackoverflow.com/questions/252785/what-is-the-difference-between-iqueryablet-and-ienumerablet” target=”_blank” rel=”noopener noreferrer”>Trước hết, IQueryable mở rộng giao diện IEnumerable, vì vậy, bất cứ điều gì bạn có thể làm với một IEnumerable “đơn giản”, bạn cũng có thể làm với IQueryable.

Bạn đang xem: Iqueryable là gì

Đang xem: Iqueryable là gì

IEnumerable chỉ có một phương thức GetEnumerator() trả về một Enumerator mà bạn có thể gọi phương thức MoveNext() của nó để lặp qua một chuỗi T.

IQueryable có gì IEnumerable không là hai thuộc tính đặc biệt của một đối tượng chỉ ra một nhà cung cấp truy vấn (ví dụ: nhà cung cấp LINQ to SQL) và một nhà cung cấp khác trỏ đến biểu thức truy vấn đại diện cho đối tượng IQueryable dưới dạng cây cú pháp trừu tượng có thể chạy ngang có thể chạy được được nhà cung cấp truy vấn nhất định hiểu (đối với hầu hết các phần, bạn không thể đưa biểu thức LINQ to SQL cho nhà cung cấp LINQ cho Thực thể mà không bị ném ngoại lệ).

Biểu thức có thể chỉ đơn giản là một biểu thức không đổi của chính đối tượng hoặc một cây phức tạp hơn của một tập hợp các toán tử truy vấn và toán hạng. Các phương thức IQueryProvider.Execute() hoặc IQueryProvider.CreateQuery() của nhà cung cấp truy vấn được gọi với một biểu thức được truyền cho nó, và sau đó, một kết quả truy vấn hoặc một IQueryable khác được trả về.

Xem thêm: Da Nang, Vietnam Postal Codes In Da Nang, Mã Zip Code Các Tỉnh Thành Việt Nam Cập Nhật 2017

Sự khác biệt chính là các toán tử LINQ cho IQueryable lấy Expression đối tượng thay vì đại biểu, nghĩa là logic truy vấn tùy chỉnh mà nó nhận được, ví dụ: bộ chọn vị ngữ hoặc giá trị, ở dạng cây biểu thức thay vì ủy nhiệm cho phương thức.

IEnumerable rất tốt để làm việc với các chuỗi được lặp trong bộ nhớ, nhưngIQueryable cho phép hết những thứ trong bộ nhớ như nguồn dữ liệu từ xa, chẳng hạn như cơ sở dữ liệu hoặc dịch vụ web.

Thực hiện truy vấn:

Trường hợp thực hiện truy vấn sẽ được thực hiện “đang xử lý” , thông thường tất cả những gì được yêu cầu là mã (dưới dạng mã) để thực thi từng phần của các truy vấn.

Xem thêm: " Thờ Ơ Là Gì Gây Ra - Nghĩa Của Từ Thờ Ơ Là Gì

Trường hợp thực hiện sẽ được thực hiện ngoài quy trình , logic của truy vấn phải được thể hiện trong dữ liệu để nhà cung cấp LINQ có thể chuyển đổi nó thành hình thức thích hợp để thực thi hết bộ nhớ – cho dù đó là truy vấn LDAP, SQL hay bất cứ điều gì.

Thêm trong:

*
*
*
*

IQueryable nhanh hơn IEnumerable nếu chúng ta đang xử lý một lượng dữ liệu khổng lồ từ cơ sở dữ liệu bởi vì, IQueryable chỉ nhận được dữ liệu cần thiết từ cơ sở dữ liệu trong đó IEnumerable có được tất cả dữ liệu bất kể sự cần thiết từ cơ sở dữ liệu