我對Nhibernate比較新。我正在嘗試更新存儲過程。 我在命名查詢中獲得了以下部分。在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
)。看起來好像命名的參數沒有被分配。我該怎麼做才能解決這個問題?
我正在使用SharpArchitecutre,它使用流利的nhibernate查詢數據。
請注意,我已經搜索論壇這個特定的問題,我不能降落在一個例子。
我相信這個問題可能是微不足道的,但到目前爲止我找不到解決方案。
任何幫助表示讚賞。