使用NHibernate查询MySql零日期

时间:2010-11-05 17:27:38

标签: mysql linq-to-nhibernate

我正在使用NHibernate联系遗留数据库,但是我遇到了MySql的零日期问题。

该列定义为DATETIME NULL,但它将“null”值存储为空白日期。 我已将Convert Zero Datetime=true添加到我的connectionstring中,因此现在所有值都转换为DateTime.MinValue。另一方面。似乎NHibernate不理解这一点,并且在查询时不会将DateTime.MinValue转换为空白的MySql日期时间。

// So this query always returns a blank result.
Where(x => x.SomeDateTime == DateTime.MinValue)
// And so does this
Where(x => x.SomeDateTime == null)

我想过将MySqlDateTime直接用于这些字段,但这很简单,我需要自己实现算法。

我知道如何才能优雅地处理这个问题吗?

1 个答案:

答案 0 :(得分:0)

与NULL比较与使用IS NULL测试不同。数据库实际上并没有在其中放置空值,它在另一个(隐藏)字段中设置了一个标志。

Where(x => x.SomeDateTime is null)