私は、パラメータスニッフィングの有罪と思われるクエリを持っています。私はhereのようなインターセプタを適用したいのですが、他のクエリには影響を与えたくありません。 DbInterception.Add(new OptionRecompileHintDbCommandInterceptor());
Entity Frameworkの1つのクエリにインターセプタを追加するにはどうすればよいですか?
このコマンドの範囲とどのようにあなただけの単一のクエリへのインターセプタの範囲を限定するものではないとは何ですか?
コードがあります使用しましたか
私が最初に考えたのは、このような何かになった:
var interceptor = new OptionRecompileHintDbCommandInterceptor();
try
{
DbInterception.Add(interceptor);
// Do query
}
finally
{
DbInterception.Remove(interceptor);
}
をしかし、これを行うのは同じであるか、それは他のスレッドでのクエリに影響を与える可能性がありますか?
更新 別の考えが私に起こりました。インターセプタがいつ適用されるかを制御できない場合、インターセプタの条件付きif
ステートメントにロジックを入れてから、インターセプタに何らかのコンテキストを供給して、ロジックをいつ適用するのかを知る方法がありますか?
これを静的なコンストラクタに追加できると考えると、すべてのクエリに影響すると思います。 –