NHibernate 抛出的异常中是否可以抑制参数值?

Can parameter values be suppressed in Exceptions thrown by NHibernate?

正如回答 ,NHibernate 在遇到 ADO 异常时包括 SQL 查询和参数值。由于数据敏感性问题,我需要编辑或抑制发送到数据库的参数值,以免它们最终出现在应用程序日志中。 有没有办法配置 NHibernate 使其不包含参数值?或者我可以覆盖的东西来实现它?

您可以使用自己的自定义方言覆盖 BuildSQLExceptionConverter method for yielding a custom NHibernate.Exceptions.ISQLExceptionConverter. (See its default implementation, or see examples in the test project。)

在此处删除参数值可能意味着对 [=15= 接收到的 exceptionInfo 参数的 Message and/or Sql 属性值进行一些肮脏的黑客攻击] 方法。

目前无法阻止 NHibernate 格式化这些属性值中的 sql 参数值。

使用自定义方言通常是通过扩展您的应用程序当前使用的方言,然后使用 dialect 设置对其进行配置。