Установите FMTONLY OFF в SQL
Недавно я присоединился к одному из проектов в своей команде. Они используют ASP.NET MVC и MS SQL вместе с Entity Framework as ORM.
Я заметил, что каждая из хранимых процедур, используемых в EF, имеет эту общую строку в начале определения хранимой процедуры
IF(0=1) SET FMTONLY OFF
Я подумал, что это очень странное состояние, поэтому немного погуглил об этом, а также спросил своих коллег об этом. Они говорят, что когда EF сопоставляет хранимую процедуру, она отправляет все параметры как null и пропускает весь цикл if. Следовательно, он также пропустил бы условие IF(0=1) и тогда
SET FMTONLY OFF
О поиске
SET FMTONLY OFF
MSDN, говоритЦитата:
Возвращает клиенту только метаданные. Может использоваться для проверки формата ответа без фактического выполнения запроса.
Это становится проблемой, когда вы не контролируете базу данных, вам приходится постоянно говорить администраторам баз данных, чтобы они добавили ее, и объяснять им снова и снова, почему она нужна в первую очередь.
Я до сих пор не имею четкого представления, зачем это нужно. Если кто-то может объяснить это немного подробно или направить меня к какой-то ссылке, которая охватывает эту тему, это будет означать для меня целый мир.
Что я уже пробовал:
просто зашел в гугл и не нашел правильного решения
CHill60
Конечно же, вы должны предоставить администраторам баз данных сценарий для создания хранимых процедур? Тогда ваша проблема исчезнет
Richard MacCutchan
Вам не приходило в голову спросить об этом кого-нибудь из действующих членов команды?