ホームページ  >  記事  >  バックエンド開発  >  C# の IEnumerable と IQueryable の違いは何ですか?

C# の IEnumerable と IQueryable の違いは何ですか?

王林
王林転載
2023-09-03 19:57:08833ブラウズ

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

  • IEnumerable は System.Collections 名前空間に存在します。
  • IQueryable はシステムに存在します。 Linq 名前空間。
  • IEnumerable と IQueryable は両方とも前方コレクションです。
  • IEnumerable は遅延読み込みをサポートしません
  • IQueryable は遅延読み込みをサポートします
  • データベースからデータをクエリする場合、IEnumerable はサーバー側で選択クエリを実行し、データをメモリに読み込みますクライアント側でデータをフィルタリングします。
  • データベースからデータをクエリするために、IQueryable はすべてのフィルターを使用してサーバー側で選択クエリを実行します。
  • IE数多くの拡張メソッドが関数オブジェクトを受け取ります。
  • 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

Queryable

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。