Paramètres Linq to SQL SP
-
06-07-2019 - |
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.
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);
}