将NHibernate 3.1与sql Server和Oracle DB一起使用时,我们需要存储一个长度超过4000个字符的文本字符串.文本实际上是
XML,但这并不重要 – 我们只想将其视为原始文本.使用sql Server,这很容易.我们将该列声明为NVARCHAR(MAX)并将其映射到:
<property name="MyLongTextValue" length="100000"/>
使用length属性告诉NHibernate期望一个字符串可能超过4000个字符.
对于我的生活,我无法弄清楚如何在Oracle 11g上完成这项工作.我已经尝试将该列声明为XMLTYPE和LONG,但没有成功.在第一种情况下,我们最终得到ORA-01461:只能在尝试插入行时插入LONG列才能绑定LONG值.在第二种情况下,数据正确插入,但在查询时返回为空字符串.
有谁知道如何使这项工作?答案必须与sql Server和Oracle兼容.我宁愿不必编写自定义扩展,例如用户类型和驱动程序子类.谢谢.