1

空間、インデックスヒントなど、EF でサポートできないクエリがいくつかあります。ただし、ほとんどのデータは EF フレンドリーであり、linq プロバイダーを使用できます。

例: Person、PersonAddress、および Address テーブルがあります。On Address 検索の領域を定義するために使用する必要がある空間インデックスがあります。それに基づいて、Person.BirthDate などでさらにフィルタリングしたいと考えています。これは既に T-SQL で実装していますが、固定パラメーターのみを使用しています。

代わりに、空間クエリとエンティティ フレームワーク クエリを組み合わせたいと考えています。そのためには、SQL コマンド テキストとパラメーターを ObjectQuery から取得する必要があります。それらを結合すると、これらは簡単になります。残念ながら、ObjectQuery.ToTraceString() を使用してしかコマンド テキストを取得できません。

私は linqpad を使用していますが、パラメーターとテキストの両方を取得できることがわかりました。これは可能である必要があります。

これを達成するための最良の方法は何ですか?

4

1 に答える 1

0

LinqPad は、すべてのトレースおよびプロファイリング ツールに似たものを使用している可能性が最も高いでしょう。サンプルのトレース ラッパーを確認します。これは、SQL クエリを生成するプロバイダーの単なるラッパーですが、ラッパー レベルでは、実行されたクエリの種類についてまったく知識がありません。それはただDbCommandです。実行された linq クエリのコンテキストがある場合に SQL を変更する唯一の方法は、カスタム プロバイダーです

于 2011-04-01T18:41:13.360 に答える