Ответ 1
По состоянию на январь 2013 года нет поддерживаемого способа сделать это с помощью Entity Framework.
Я открыл запрос функции здесь.
У меня есть несколько хранимых процедур, отображаемых в Entity Framework с использованием Database First. Он создает строго типизированные методы, которые вы можете вызвать для запуска хранимых процедур. Однако у меня возникла значительная проблема: я не вижу способа вызвать эти методы, созданные с помощью параметров по умолчанию, определенных в хранимых процедурах. Это означает:
a) Мне нужно вручную добавить параметры по умолчанию к вызовам метода, которые являются хрупкими, если значение параметра по умолчанию должно было измениться.
b) Перепишите метод перегрузки вручную. Это в основном устраняет преимущества создания модели из базы данных в первую очередь.
Кто-нибудь знает, есть ли лучшее решение этой проблемы?
Спасибо.
По состоянию на январь 2013 года нет поддерживаемого способа сделать это с помощью Entity Framework.
Я открыл запрос функции здесь.
Вот хакерское обходное решение. Я не знаю, есть ли функция в EF для поддержки необязательных параметров, но вы можете попытаться ее эмулировать - если вы хотите изменить хранимые процедуры.
Вы можете изменить значение по умолчанию в определении хранимой процедуры на NULL
, а затем в теле процедуры заменить параметры NULL
на желаемое значение по умолчанию. Затем из кода с использованием EF вы можете передать NULL
, чтобы указать использование по умолчанию. Таким образом, по умолчанию значение по умолчанию определяется только в самом SP.
Недостатки включают в себя, конечно, что теперь NULL
становится "внеполосным" значением, то есть вы не можете передать его в SP, если это вам нужно (помимо необходимости изменять ваши SP и обеспечивать все будущие одни используют это странное соглашение)