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

王林
發布: 2023-09-03 19:57:08
轉載
898 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板