我遇到問題,使用NHibernate
將非常長的字符串保存到數據庫。字符串被截斷爲43,680個字符。該字符串是一個非常長的包,其大小各不相同,但有時很長。保存時,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字節 –
2013-03-07 18:31:01
對不起,我忘了補充一點。版本是3.2。我試圖指定100000的字符串長度,並且它仍然返回相同數量的字符。 – TPaul1981 2013-03-07 19:48:11
你如何驗證字符串限制爲43,680個字符? 「Sql Server Management Studio 2008」中存在一個已知錯誤,該錯誤只顯示網格中此限制的字符串,已知的解決方法。 – 2013-03-07 20:42:36