Проблемы с назначением значений именованным параметрам в 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 для запроса данных.
Пожалуйста, обратите внимание, я искал на форуме именно эту проблему и не смог найти пример.
Я уверен, что проблема может быть тривиальной, но я не мог найти решение до сих пор.
Любая помощь приветствуется.
1 ответ
Существует небольшая поддержка хранимых процедур в NHibernate. Для получения дополнительной информации, ознакомьтесь с документацией NH: http://nhibernate.info/doc/nh/en/index.html
И, возможно, это поможет вам в этом: http://ayende.com/blog/1692/using-nhibernate-with-stored-procedures