Когда я выполнения хранимой процедуры с помощью Entity Framework, он генерирует ниже синтаксис:Удалить sp_executesql при выполнении хранимой процедуры с помощью 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 нет ничего, чтобы «отключить» это поведение - это, в конце концов, ** общепринятая Best Practice ** для выполнения ** параметризованных запросов ** против SQL Server –