を使用してストアドプロシージャを実行しながら、sp_executesqlのを削除します。私はEntity Frameworkのを使用してストアドプロシージャを実行すると、それは構文の下に生成Entity Frameworkの
exec sp_executesql N'EXEC test @CityIds',N'@CityIds nvarchar(1)',@CityIds=N'1'
を当社のDBAは、クエリのこれらの並べ替えと懸念を提起し、取得したいましたsp_executesqlを削除します。
クエリは次のようになります。
exec test @CityIds=1
これを達成するために、エンティティフレームワークでは、さまざまな方法は何を?
**懸念はDBAは全く何をしましたか?これは、**完全に安全な**、パラメータ化されたクエリです。何について不平を言いますか?私はこの行動を変えるようにEFに伝える方法を知らない..... –
私はあなたの意見に同意します。しかし、DBAは、sp_executesqlがそのクエリを動的クエリとして作成し、実行計画のキャッシュに役立たないことを期待していました。 動的クエリを使用せずに作成できる回避策はありますか? –
*** *** ***動的クエリです!これはパラメータ値を使って実行される単純な**適切にパラメータ化された**標準T-SQLクエリです。 ** **私が知る限り、EFにはこの動作を「切り換える」ものはありません。**一般的に受け入れられている**ベストプラクティス**の後に** SQL Serverに対して**パラメータ化されたクエリ**を実行します。 –