NHibernate 存储过程 - 设置参数大小



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

最新更新