LinqKit を使用して、動的に生成されたフィルターを使用してクエリを作成しています。
このクエリは、データベースから非常に大きなオブジェクト グラフをフェッチして計算を実行し、そのデータに対してその他の変更を行います。クエリで使用Includes
しない限り、必要なメイン エンティティをデータベースから取得するのに時間はかかりません。しかし、残念ながら、必要な計算を実行するには、関連するエンティティの多くが必要です。
を追加するたびに、これは SQL の新しいネストされたサブクエリInclude
に変換されます。私は約 8 または 9 を持っているので、これは多くのネストされたサブクエリに変換されます。そのクエリはデータを返すのに永遠にかかります。Inlcudes
これらのネストされたサブクエリをすべて SQL から消したいと思っていますが、アプリケーション側から LinqKit を使用して SQL を思いどおりに形作るのはちょっと難しいです。
その特定のケースでは、ストアド プロシージャを SQL を希望どおりに記述し、Entity Framework から呼び出すことをお勧めします。
私の問題は、ストアド プロシージャを使用してアプリケーション側でオブジェクト グラフを取得する方法がわからないことです。単一の「エンティティ」にすべてのデータを含めるEF を生成することができますComplexType
が、計算を行うコードは特定のエンティティ オブジェクト グラフ(メイン エンティティとそれに関連するエンティティ) を待機するため、コードはそれが何であるかわかりませんComplexType
。それを使用するために計算エンジンを書き直す必要はありませんComplexType
。結果を単一のエンティティにマップできますが、そのエンティティのみが返されます。関連エンティティも返してほしい。
私は岩とクレイジーな場所の間に挟まれているようです.
誰でも何か提案できますか?