5

我正在使用 执行存储过程GetNamedQuery并使用SetString. NHibernate 将字符串参数设置为NVarchar(4000). 我的字符串参数值实际上比这长,因此被截断。

有没有办法告诉 NHibernate 在执行查询时使用更长的字符串类型?查询在映射文件中被简单地定义。exec dbo.ProcessUploads :courseId, :uploadxml

编辑:我的参数都不是所涉及实体的属性。

4

2 回答 2

12

由于 NHibernate 没有足够的信息来自动设置参数长度,因此您必须手动进行。

例子:

session.GetNamedQuery("ProcessUploads")
       .SetParameter("courseId", courseId)
       .SetParameter("uploadXml", uploadXml, NHibernateUtil.StringClob)
       .ExecuteUpdate();

在这种情况下,我使用的是StringClob,这将转换为NVARCHAR(max).

于 2012-06-29T23:29:32.703 回答
1

您应该向我们展示或检查您的 HBM 文件的参数。在那里您可以指定字段/属性类型、长度...

在这里您可以阅读官方nHibernate 文档

于 2012-06-29T14:51:13.077 回答