私はNhibernateに比較的慣れていません。ストアド プロシージャを更新しようとしています。名前付きクエリで以下のセクションを取得しました。
<sql-query name="TestUpdate">
exec UpdateTest :DateField :StringField :IntField :BoolField :NullIntField
</sql-query>
Testupdate は、単純な更新ステートメントを含むストアド プロシージャです。次のコード行を使用してパラメーターを更新しています。
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();
ただし、 の値を見ると、query.QueryString
まだ同じ値 ( ) を指していますexec UpdateTest :DateField :StringField :IntField :BoolField :NullIntField
。名前付きパラメーターが割り当てられていないようです。この問題を回避するにはどうすればよいですか?
データのクエリに流暢な nhibernate を使用する SharpArchitecutre を使用しています。
この特定の問題についてフォーラムを検索しましたが、例を見つけることができませんでした。
問題は些細なことかもしれませんが、これまでのところ解決策を見つけることができませんでした。
どんな助けでも大歓迎です。