NHibernate - установка длинной строки в качестве параметра для запроса - PullRequest
1 голос
/ 08 февраля 2011


Я создаю запрос следующим образом:

private void Test()
{ 
    ISession session = sessionFactory.OpenSession();
    var query = session.GetNamedQuery("testQuery");
    string s = BuildVeryLongString(); // length more that 4000 chracters
    query.SetParameter("Param", s, NHibernateUtil.String);
    query
        .SetResultTransformer(new AliasToBeanResultTransformer(type))
        .List<Type>();
}

В DB-profiler я вижу, что тип Param равен nvarchar(4000), что недостаточно.Есть ли способ сказать NHibernate, что я собираюсь использовать более длинные строки?
PS DB - это MSSQL 2005.
Заранее спасибо!

1 Ответ

2 голосов
/ 08 февраля 2011

Предполагая, что Param используется в качестве ограничения для сопоставленного свойства, запрос попытается использовать правильный тип данных и длину для параметра в соответствии со свойством сопоставления.Param коррелирует со свойством, сопоставленным со столбцом nvarchar (max)?Если да, правильно ли вы установили длину данных?Вы должны установить длину данных в строковом столбце более 4000 (должно работать 4001), если вы хотите, чтобы Nhibernate распознал его как nvarchar (max).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...