Parametri da Linq a SQL SP
-
06-07-2019 - |
Domanda
Ho un SP che desidero chiamare da Linq. L'SP ha 5 parametri, ma voglio solo passare / ho bisogno di 2 di essi.
come potrei chiamare SP come quando vado ad aggiungere i parametri nel codice che non costruirà come vuole tutto 5.
Soluzione
Avresti qualcosa del genere:
MyDbDataContext db = new MyDbDataContext();
db.MyStoredProc(customerID, "sometext", null, null, null);
L'esito positivo / negativo dipenderebbe dalle istruzioni SQL all'interno dello sproc che si occupano di valori null su questi ultimi 3 parametri.
Altri suggerimenti
Un'altra opzione è trascinare il proc memorizzato nel tuo DBML una seconda volta ed eliminare i parametri che non vuoi passare.
overload la chiamata sproc.
Non ce l'ho davanti, ma andresti a cercare il tuo file DataAccessName.cs e creeresti un nome di metodo con la stessa firma
firma del metodo sproc auto gen'd:
void sp_sproc(int a, int b, int c, int d, int e);
lo faresti nel tuo file DataAccessName.cs
void sp_sproc(int a, int b)
{
this.sp_sproc(a,b,0,0,0);
}
se i parametri sono nullable, in questo modo
void sp_sproc(int? a, int? b, int? c, int? d, int? e);
allora potresti farlo
void sp_sproc(int a, int b)
{
this.sp_sproc(a,b,null,null,null);
}