2013-11-09 1 views
4

Имея некоторые проблемы с кодом, который используется для работы предварительно 1.8.2 версии C# MongoDB Driver:Как получить MongoCursorEnumerator <T> с последней версией драйвера C# (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 больше не работает. Кто-нибудь знает, почему это происходит или каково было бы возможное решение?

ответ

5

Начиная с версии V1.8 вы должны использовать конструктор MongoCursorEnumerator.

return new MongoCursorEnumerator<T>(cursor); 

К сожалению, нет никакого намека в документации - вы должны посмотреть на исходный код: -/