Подтвердить что ты не робот

Entity Framework - вызов хранимой процедуры с параметрами по умолчанию

У меня есть несколько хранимых процедур, отображаемых в Entity Framework с использованием Database First. Он создает строго типизированные методы, которые вы можете вызвать для запуска хранимых процедур. Однако у меня возникла значительная проблема: я не вижу способа вызвать эти методы, созданные с помощью параметров по умолчанию, определенных в хранимых процедурах. Это означает:

a) Мне нужно вручную добавить параметры по умолчанию к вызовам метода, которые являются хрупкими, если значение параметра по умолчанию должно было измениться.

b) Перепишите метод перегрузки вручную. Это в основном устраняет преимущества создания модели из базы данных в первую очередь.

Кто-нибудь знает, есть ли лучшее решение этой проблемы?

Спасибо.

4b9b3361

Ответ 1

По состоянию на январь 2013 года нет поддерживаемого способа сделать это с помощью Entity Framework.

Я открыл запрос функции здесь.

Ответ 2

Вот хакерское обходное решение. Я не знаю, есть ли функция в EF для поддержки необязательных параметров, но вы можете попытаться ее эмулировать - если вы хотите изменить хранимые процедуры.

Вы можете изменить значение по умолчанию в определении хранимой процедуры на NULL, а затем в теле процедуры заменить параметры NULL на желаемое значение по умолчанию. Затем из кода с использованием EF вы можете передать NULL, чтобы указать использование по умолчанию. Таким образом, по умолчанию значение по умолчанию определяется только в самом SP.

Недостатки включают в себя, конечно, что теперь NULL становится "внеполосным" значением, то есть вы не можете передать его в SP, если это вам нужно (помимо необходимости изменять ваши SP и обеспечивать все будущие одни используют это странное соглашение)