Pregunta

Tengo un SP al que quiero llamar desde linq. El SP tiene 5 parámetros, pero solo quiero pasar / necesito 2 de ellos.

¿cómo llamaría al SP como cuando voy a agregar los parámetros en el código que no construirá, ya que quiere todos los 5.

¿Fue útil?

Solución

Tendría algo como esto:

MyDbDataContext db = new MyDbDataContext();

db.MyStoredProc(customerID, "sometext", null, null, null);

El éxito / el fracaso dependerían de las declaraciones SQL dentro de su sproc que tratan con valores nulos en los últimos 3 parámetros.

Otros consejos

Otra opción es arrastrar el proceso almacenado a su DBML por segunda vez y eliminar los parámetros que no desea pasar.

sobrecarga la llamada sproc.

No lo tengo frente a mí, pero debe ir a su archivo DataAccessName.cs y crear un nombre de método con la misma firma

firma del método sproc auto gen'd:

void sp_sproc(int a, int b, int c, int d, int e);

haría esto en su archivo DataAccessName.cs

void sp_sproc(int a, int b)
{
    this.sp_sproc(a,b,0,0,0);
}

si los parámetros son anulables, así

void sp_sproc(int? a, int? b, int? c, int? d, int? e);

entonces podrías hacer

void sp_sproc(int a, int b)
{
    this.sp_sproc(a,b,null,null,null);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top