У меня проблемы с сохранением очень длинных строк в базе данных с помощью NHibernate
. Строки усекаются до 43 680 символов. Строка представляет собой очень длинный пакет XML
, который отличается по размеру, но иногда очень длинный.NHibernate усекает длинные строки при сохранении
Тип данных базы данных - nvarchar(max)
, поэтому ограничений нет.
Может кто-нибудь помочь мне понять, почему NHibernate
усекает это, и как я могу это предотвратить?
Вот мое отображение:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Application.DataObjects"
namespace="Company.Application.DataObjects.Transaction.Domain">
<class name="TransactionDO" table="Transactions">
<id name="TransactionID">
</id>
<property name="Created" />
<property name="LongXML" type="StringClob">
<column name="LongXML" sql-type="nvarchar(max)"/>
</property>
<property name="ProcessConstructor" />
<property name="VeryLongXML" type="StringClob">
<column name="VeryLongXML" sql-type="nvarchar(max)" />
</property>
</class>
</hibernate-mapping>
Какая версия NHibernate вы используете? Можно попробовать указать максимальную длину для тестирования, чтобы увидеть, работает ли: ' ' nvarchar (max), в этом случае длина данные могут быть 2^31-1 байта –
Извините, я забыл добавить это. Версия 3.2. Я попытался указать длину строки 100000. и он все равно возвращает одинаковое количество символов. – TPaul1981
Как вы проверяете, что строки ограничены 43 680 символами? В «Sql Server Management Studio 2008» есть известная ошибка, которая показывает только строки этого предела в сетке, обходные решения известны. –