我正在使用 执行存储过程GetNamedQuery
并使用SetString
. NHibernate 将字符串参数设置为NVarchar(4000)
. 我的字符串参数值实际上比这长,因此被截断。
有没有办法告诉 NHibernate 在执行查询时使用更长的字符串类型?查询在映射文件中被简单地定义。exec dbo.ProcessUploads :courseId, :uploadxml
编辑:我的参数都不是所涉及实体的属性。
我正在使用 执行存储过程GetNamedQuery
并使用SetString
. NHibernate 将字符串参数设置为NVarchar(4000)
. 我的字符串参数值实际上比这长,因此被截断。
有没有办法告诉 NHibernate 在执行查询时使用更长的字符串类型?查询在映射文件中被简单地定义。exec dbo.ProcessUploads :courseId, :uploadxml
编辑:我的参数都不是所涉及实体的属性。
由于 NHibernate 没有足够的信息来自动设置参数长度,因此您必须手动进行。
例子:
session.GetNamedQuery("ProcessUploads")
.SetParameter("courseId", courseId)
.SetParameter("uploadXml", uploadXml, NHibernateUtil.StringClob)
.ExecuteUpdate();
在这种情况下,我使用的是StringClob
,这将转换为NVARCHAR(max)
.
您应该向我们展示或检查您的 HBM 文件的参数。在那里您可以指定字段/属性类型、长度...
在这里您可以阅读官方nHibernate 文档