MongoDb C#驱动程序在DateTime比较中抛出序列化错误

时间:2015-08-13 19:08:37

标签: c# mongodb datetime comparison

我正在使用MongoDb的C#驱动程序。我有一个非常简单的'查找'查询:

var cursor = PortalContext.Users.Find(user => DateTime.Now > user.UpdatedDate);
return cursor.ToListAsync();

引发异常:

Message: "An error has occurred."
ExceptionMessage: "Unsupported filter: (8/13/2015 12:03:44 PM > Serialization(UpdatedDate))."
ExceptionType: "System.ArgumentException"
StackTrace: " at MongoDB.Driver.Linq.Translators.PredicateTranslator.BuildFilter(Expression expression) at ...

1 个答案:

答案 0 :(得分:2)

尝试重新排列Find以使常量(DateTime.Now)位于右侧,是否有效?

var cursor = PortalContext.Users.Find(user => user.UpdatedDate < DateTime.Now);
return cursor.ToListAsync();

1.x驱动程序(CSHARP-431)中存在一个错误,其中驱动程序没有处理这个常量位于左侧的情况。它很久以前就得到了修复,但这个问题可能就是回归。