4

曾经在 C# MongoDB 驱动程序的 1.8.2 之前版本中工作的代码存在一些问题:

使用以前版本的驱动程序,我可以执行以下操作:

private MongoCursorEnumerator<T> InitializeCursor()
{
    var cursor = _queue.Find(Query.GT("_id", _lastId));
    return MongoCursorEnumerator<T>cursor.GetEnumerator();
}

现在,此代码生成异常:

无法将案例类型“d__0”键入“MongoDB.Driver.MongoCursorEnumerator`1”。

需要对 MongoCursorEnumerator 进行强制转换,因为它具有 IsDead 属性,稍后在代码中用于重新初始化游标。不知何故,向上转换为 MongoCursorEnumerator 不再有效。任何人都知道为什么会发生这种情况或可能的解决方法是什么?

4

1 回答 1

5

从 V1.8 开始,您必须使用 MongoCursorEnumerator 的构造函数。

return new MongoCursorEnumerator<T>(cursor);

不幸的是,文档中没有提示-您必须查看源代码:-/

于 2013-12-09T21:49:43.017 回答