首頁  >  文章  >  後端開發  >  C# 中 IEnumerable 和 IQueryable 有什麼差別?

C# 中 IEnumerable 和 IQueryable 有什麼差別?

王林
王林轉載
2023-09-03 19:57:08834瀏覽

C# 中 IEnumerable 和 IQueryable 有什么区别?

  • IEnumerable 存在於 System.Collections 命名空間中。
  • IQueryable 存在於 System 中。 Linq 命名空間。
  • IEnumerable 和 IQueryable 都是正向集合。
  • IEnumerable 不支援延遲載入
  • IQueryable 支援延遲載入
  • #從資料庫查詢資料時,IEnumerable 在伺服器端執行選擇查詢,在客戶端將資料載入到記憶體中,然後過濾資料。
  • 從資料庫查詢數據,IQueryable 在伺服器端執行選擇查詢帶有所有過濾器的伺服器端。
  • IEnumerable 擴充方法採用函數物件。
  • IQueryable 擴充方法採用表達式物件意味著表達式樹。

範例

IEnumerable

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

以上是C# 中 IEnumerable 和 IQueryable 有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除