我正在使用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。
存储的所有日期上失败关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
问题是,在查询期间,MongoDB驱动程序不知道您选择了替代表示。
因此,您需要明确查询Int64
:
Query.LT("MyField", DateTime.Now.Ticks));
这将按预期工作(使用MongoDB 2.1.1,C#驱动程序1.4.2.4500进行测试)