2011-11-23 1 views
0

Je suis relativement nouveau à Nhibernate. J'essaye de mettre à jour une procédure stockée. J'ai la section ci-dessous dans la requête nommée. Testupdate est une procédure stockée qui contient une instruction de mise à jour simple. Je suis en train de mettre à jour les paramètres en utilisant la ligne de code suivante.Problèmes avec l'affectation de valeurs à des paramètres nommés dans Nhibernate

 int? testdata = null; 
     IQuery query = Session.GetNamedQuery("TestUpdate"); 
     query.SetDateTime("DateField", DateTime.Now.AddDays(10)); 
     query.SetString("StringField", "UK"); 
     query.SetInt32("IntField", 100); 
     query.SetBoolean("BoolField", true); 

     if(testdata.HasValue) 
      query.SetInt32("NullIntField", testdata.GetValueOrDefault()); 
     else 
     { 
      query.SetParameter("NullIntField", null,NHibernateUtil.Int32);  
     } 

     var cmd = new SqlCommand(query.QueryString, (SqlConnection)Session.Connection); 
     cmd.ExecuteNonQuery(); 

Cependant, quand je regarde la valeur de query.QueryString, il pointe encore à la même valeur (exec UpdateTest :DateField :StringField :IntField :BoolField :NullIntField). Il semble que les paramètres nommés ne sont pas assignés. Que dois-je faire pour contourner ce problème? J'utilise SharpArchitecutre, qui utilise nhibernate fluent pour interroger les données.

S'il vous plaît noter, j'ai cherché sur le forum pour ce problème particulier et je ne pouvais pas atterrir sur un exemple. Je suis sûr que le problème pourrait être trivial, mais je n'ai pas trouvé de solution jusqu'à présent.

Toute aide est appréciée.

Répondre

Questions connexes