ホームページ > バックエンド開発 > C#.Net チュートリアル > C# の IEnumerable と IQueryable の違いは何ですか?

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

王林
リリース: 2023-09-03 19:57:08
転載
912 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート