我正在使用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 ...
答案 0 :(得分:2)
尝试重新排列Find
以使常量(DateTime.Now
)位于右侧,是否有效?
var cursor = PortalContext.Users.Find(user => user.UpdatedDate < DateTime.Now);
return cursor.ToListAsync();
1.x驱动程序(CSHARP-431)中存在一个错误,其中驱动程序没有处理这个常量位于左侧的情况。它很久以前就得到了修复,但这个问题可能就是回归。