ホームページ > データベース > mysql チュートリアル > EF Core は階層データ取得のために自己参照カテゴリ テーブルを効率的にマップするにはどうすればよいですか?

EF Core は階層データ取得のために自己参照カテゴリ テーブルを効率的にマップするにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-03 01:32:39
オリジナル
637 人が閲覧しました

How Can EF Core Efficiently Map a Self-Referencing Category Table for Hierarchical Data Retrieval?

自己参照カテゴリ テーブル構造を EF Core にマッピングする

問題は、カテゴリなどの階層構造を取得する複雑さから発生します。 EF Core と LINQ の制限内で、テーブルとその ParentId 列。これに対処するために、再帰関数を使用してカテゴリを手動で走査し、ChildCategories プロパティを設定しました。

ただし、EF Core の全機能を活用したより効率的なソリューションが登場しました。

使用Single Include

を使用してツリーの一部をロードする以前の試みとは異なります。 Include() の場合、このアプローチには ChildCategories プロパティに対する 1 つの Include() が含まれます。これと、LINQ to Objects コンテキストへのクエリの具体化と組み合わせることで、EF Core のナビゲーション プロパティの修正でマッピングを処理できるようになります。

フィルタリングによる最適化取得

Toリポジトリの GetAll() メソッドの要求に応じて、カテゴリ ツリーのルート ノードのみを取得します。クエリが完了した後にフィルタが適用されます。実体化されています:

return Table
       .AsEnumerable()
       .Where(x => x.ParentId == null)
       .ToList();
ログイン後にコピー

AsEnumerable() を使用してクエリを LINQ to Objects コンテキストに実体化することにより、フィルターが適用される前にナビゲーション プロパティが修正されます。これにより、再帰関数を必要とせずに、目的の階層構造を効果的に取得する単一の SQL クエリが作成されます。

以上がEF Core は階層データ取得のために自己参照カテゴリ テーブルを効率的にマップするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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