Параметры Linq to SQL SP
-
06-07-2019 - |
Вопрос
У меня есть ИП, которому я хочу позвонить из linq. У SP есть 5 параметров, но я хочу передать только 2 из них.
как бы я назвал SP, как когда я иду, чтобы добавить параметры в код, который он не будет строить, как он хочет все 5.
Решение
У вас было бы что-то вроде этого:
MyDbDataContext db = new MyDbDataContext();
db.MyStoredProc(customerID, "sometext", null, null, null);
Успех / неудача будет зависеть от операторов SQL внутри sproc, имеющих дело с нулями по этим последним 3 параметрам.
Другие советы
Другой вариант - перетащить сохраненный процесс во второй DBML и удалить параметры, которые вы не хотите передавать.
перегрузить вызов sproc.
У меня нет его передо мной, но вы должны перейти к файлу DataAccessName.cs и создать имя метода с той же подписью
подпись метода автоматического генерации sproc:
void sp_sproc(int a, int b, int c, int d, int e);
вы сделаете это в своем файле DataAccessName.cs
void sp_sproc(int a, int b)
{
this.sp_sproc(a,b,0,0,0);
}
если параметры обнуляются, например, так
void sp_sproc(int? a, int? b, int? c, int? d, int? e);
тогда вы могли бы сделать
void sp_sproc(int a, int b)
{
this.sp_sproc(a,b,null,null,null);
}