Проблемы с назначением значений именованным параметрам в 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

Другие вопросы по тегам