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.

È stato utile?

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);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top