L'utilisation de Subsonic 3.0.0.3 permet-elle de transmettre une valeur nulle à un paramètre de procédure stockée? Si oui, quelle est la manière appropriée?Subsonic 3 - Passer une valeur nulle à un paramètre de procédure stockée
Détails
Dire que j'ai un sp où l'un des paramètres a une valeur par défaut comme:
CREATE Procedure Test_SPWithNullParams(@p1 int=null, @p2 varchar(50))
AS
SELECT 1 as Stuff
Puis dans mon code, je veux faire quelque chose comme:
var db = new Sandbox.DB();
StoredProcedure sproc = db.Test_SPWithNullParams(null , "test");
//alternately --> db.Test_SPWithNullParams("test");
La façon dont la fonction correspondante a été générée dans StoredProcedures.cs, cependant, le paramètre pour @ p1 n'est pas Nullable. Alors, quelles sont mes alternatives? Je suis tombé sur cet article (http://brianmrush.wordpress.com/2010/01/19/subsonic-t4-templates-stored-procedures-nullable-parameters), mais il semble que ce soit un travail fastidieux qui corrige efficacement la base du code. J'ai également pensé à redéfinir manuellement l'objet de commande. Quelque chose comme:
int dummyInt = -1;
StoredProcedure sproc = db.Test_SPWithNullParams(dummyInt , "test");
sproc.Command.Parameters[0].ParameterValue = DBNull.Value;
Pensées?
Désolé, mais la définition de null dummyInt param empêche la compilation. Subsonic écrit "db.Test_SPWithNullParams" sans paramètre nullable. Cela signifie que je dois soit faire un (int.hasvalue? Int: 0) ou définir un paramètre non nullable. Ni permettez-moi de passer une valeur nulle à mon SP. – EBarr