是否可以使Nhibernate防止“休眠”;SQLDateTime溢出“-查询数据库时发生异常

本文关键字:数据库 查询 溢出 异常 SQLDateTime Nhibernate 可以使 防止 休眠 是否 | 更新日期: 2023-09-27 18:28:16

我想知道是否可以用普通的方式处理SQLDateTime溢出异常,所以每次我试图查询数据库中1753年1月1日之前的日期时,都不会导致异常,而是将超出范围的日期转换为SQL最小DateTime。

我只想让它在查询数据库时工作,而不是在插入时。当试图插入错误的日期时,破例是很有意义的,因为这不应该发生。但在查询时,只将时间转换为最短时间在逻辑上是正确的,因为这将返回零结果。

我想象这样的东西,但不知道该放在哪里:

override DateTime ParseDateTime(DateTime date)
{
   var minDate = System.Data.SqlTypes.SqlDateTime.MinValue.Value;
   if (date < minDate)
     return minDate;
   else
     return date;
}

是否可以使Nhibernate防止“休眠”;SQLDateTime溢出“-查询数据库时发生异常

我认为您可以通过自定义IUserType实现来实现这一点(示例-http://lostechies.com/rayhouston/2008/03/23/mapping-strings-to-booleans-using-nhibernate-s-iusertype/)