【问题标题】:Nhibernate Truncates stored procedure input parameters when parameter values are more than 4000 characters当参数值超过 4000 个字符时,Nhibernate 截断存储过程输入参数
【发布时间】:2011-11-19 17:32:20
【问题描述】:

如何在 Nhibernate 映射文件中指定存储过程的字符串输入参数的长度。

这是我的映射内容

<sql-query name="Sp_News" resultset-ref="NewsPackResultSet" cacheable="false">

    <query-param name="SearchString"       type="System.String" />
    <query-param name="StartDate"          type="System.DateTime" />

          exec dbo.Sp_News:SearchString,:StartDate

</sql-query>

当 SearchString 参数的长度超过 4000 个字符时,Nhibernate 会截断该参数值。我该如何解决这个限制?

任何帮助将不胜感激。

【问题讨论】:

  • 我认为你应该在调用存储过程之前验证这一点。为什么搜索参数会超过几个字符或单词?
  • 这听起来仍然像是你应该预先验证的东西。如果您将数据发送到存储过程,您不应该仅仅因为它太长而发送“可能”失败的东西。如果您要存储一篇文章,为什么要将其限制为 4000 个字符?
  • 嗨,你的问题解决了吗?我也有同样的:(

标签: nhibernate nhibernate-mapping


【解决方案1】:

找到了这个问题,也找到了答案:

IQuery query = session.GetNamedQuery("Sp_News");
query.SetParameter("SearchString", longString, NHibernateUtil.StringClob);

NHibernateUtil.StringClob 是关键:-)

【讨论】:

    猜你喜欢
    • 2014-03-07
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多