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

Pet*_*e S 4 c# sql-server nhibernate stored-procedures

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

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

编辑:我的参数都不是所涉及的内容的属性.

Die*_*hon 10

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

例:

session.GetNamedQuery("ProcessUploads")
       .SetParameter("courseId", courseId)
       .SetParameter("uploadXml", uploadXml, NHibernateUtil.StringClob)
       .ExecuteUpdate();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我正在使用StringClob,这将转化为NVARCHAR(max).