我正在使用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文档中阅读有关的内容