Representation = BsonType.Int64与Datetime无法正常工作

时间:2012-06-07 00:59:58

标签: c# mongodb mongodb-.net-driver bson

我正在使用Representation = BsonType.Int64属性在我的类中装饰我的一个DateTime属性,以便它以Int64表示日期存储在数据库中。

当我以前将该属性存储为普通的C#Datetime并且没有将值设置为任何值时,它会将DateTime.Min存储在数据库中。这是完美的,因为我正在从数据库读取并执行Query.LT操作,如下所示:

Query.LT("MyField", DateTime.Now));

它曾用于返回所有值。

现在我开始将它存储为BsonType.Int64,并且BsonType.Int64中的DateTime.Min等效于“0”。我的Query.LT(“MyField”,DateTime.Now));在使用DateTime.Min。

存储的所有日期上失败

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

问题是,在查询期间,MongoDB驱动程序不知道您选择了替代表示。

因此,您需要明确查询Int64

Query.LT("MyField", DateTime.Now.Ticks));

这将按预期工作(使用MongoDB 2.1.1,C#驱动程序1.4.2.4500进行测试)