如何使用最新版本的C#(1.8.2+)驱动程序获取MongoCursorEnumerator <t>?</t>

时间:2013-11-09 18:53:26

标签: c# mongodb ienumerable mongodb-.net-driver mongodb-query

对于以前使用1.8.2版本的C#MongoDB驱动程序的代码存在一些问题:

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

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不再有效。任何人都知道为什么会发生这种情况或者可能解决这个问题的原因是什么?

1 个答案:

答案 0 :(得分:5)

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

return new MongoCursorEnumerator<T>(cursor);

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