Question

J'ai un SP que je souhaite appeler depuis linq. Le SP a 5 paramètres mais je veux seulement en passer / en avoir besoin de 2.

comment pourrais-je appeler le SP, car lorsque je vais ajouter les paramètres dans le code, il ne sera pas construit car il veut tous les 5.

Était-ce utile?

La solution

Vous auriez quelque chose comme ceci:

MyDbDataContext db = new MyDbDataContext();

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

Le succès / l'échec dépendrait des instructions SQL de votre sproc traitant des valeurs NULL pour ces 3 derniers paramètres.

Autres conseils

Une autre option consiste à faire glisser le processus stocké dans votre DBML une deuxième fois et à supprimer les paramètres que vous ne souhaitez pas transmettre.

surcharger l'appel du sproc.

Je ne l'ai pas sous les yeux, mais vous devez accéder à votre fichier DataAccessName.cs et créer un nom de méthode avec la même signature

signature de la méthode sproc auto gen'd:

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

vous le feriez dans votre fichier DataAccessName.cs

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

si les paramètres sont nullables, comme si

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

alors vous pourriez faire

void sp_sproc(int a, int b)
{
    this.sp_sproc(a,b,null,null,null);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top