在查询数据库时,是否有可能让Nhibernate阻止“SQLDateTime溢出” - 例外?

时间:2012-03-20 09:07:52

标签: c# fluent-nhibernate

我想知道是否有可能以一种方式处理SQLDateTime溢出异常,因此每次我尝试在数据库中查询171年1月1日之前的日期时都不会导致异常,而只是将超出范围的日期转换为SQL最小日期时间。

我只希望它在查询数据库时工作 - 而不是在插入时。在尝试插入错误的日期时,它很容易引发异常,因为这绝不会发生。但是在查询时,将时间转换为最小时间在逻辑上是正确的,因为这将返回零结果。

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

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

1 个答案:

答案 0 :(得分:0)

我认为您可以使用自定义IUserType实现(示例 - http://lostechies.com/rayhouston/2008/03/23/mapping-strings-to-booleans-using-nhibernate-s-iusertype/

来实现此目的