ホームページ > バックエンド開発 > C++ > EF Coreのナビゲーションプロパティによって返されたデータをフィルタリングするにはどうすればよいですか?

EF Coreのナビゲーションプロパティによって返されたデータをフィルタリングするにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-31 02:56:12
オリジナル
940 人が閲覧しました

How Can I Filter Data Returned by Navigation Properties in EF Core Includes?

フィルターには

が含まれます

フィルタリングを含めることにより、クエリ中にナビゲーション属性によって返されるデータ範囲を減らすことができます。これは、エンティティを含む属性に従ってフィルタリングする必要がある場合に特に便利です。

次のコードを検討してください:

このコードには、各ブログのすべての投稿と著者が含まれています。著者の名前に応じて結果をフィルタリングするには、操作場所を使用できます。

1

2

3

4

5

6

7

using (var context = new BloggingContext())

{

    var blogs = context.Blogs

        .Include(blog => blog.Posts)

            .ThenInclude(post => post.Author)

        .ToList();

}

ログイン後にコピー
サポートされた操作<支持>

EF Core 5は、フィルタリングのための次の操作をサポートします。

1

2

3

4

5

6

7

8

using (var context = new BloggingContext())

{

    var blogs = context.Blogs

        .Include(blog => blog.Posts)

            .ThenInclude(post => post.Author)

        .Where(blog => blog.Posts.Any(p => p.Author == "me")) // 修正后的Where条件

        .ToList();

}

ログイン後にコピー
ここで

Orderby(下降)/Thenby(DeShenging)

スキップ

を取る
  • 重要な説明
  • 各ナビゲーション属性により、1つのフィルターのみが許可されます。
  • 後続のフィルタリングには、結果が蓄積されます。
  • 遅延荷重が有効になっている場合でも、フィルタリングに含まれる荷重と見なされます。
フィルター式は、収集のフィルタリングに独立して使用できる「独立した」述語でなければなりません。

    フィルターに含まれるフィルタリングとクエリフィルタリング
  • フィルターには、メインクエリによって返されるアイテムの数には影響しません。メインクエリの結果をフィルタリングするには、操作の場合は別の場所を使用して含めます。
  • 投影とフィルタリングには
  • が含まれます
  • 投影は通常、それらがフィルタリングされているかどうかに関係なく含まれることを無視します。ただし、投影内のエンティティを含めることができる場合、含めることがそれに適用されます。 (注:元のテキストでは、予測とフィルタリングの説明が短すぎると、補足的な説明がここで明確になります。)

以上がEF Coreのナビゲーションプロパティによって返されたデータをフィルタリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート