Почему linq не может найти реализацию для mongodb?

Я пытаюсь использовать linq в C# с mongodb в соответствии с учебником здесь http://docs.mongodb.org/ecosystem/tutorial/use-linq-queries-with-csharp-driver/

Я имею:

  1. Директива using для MongoDB.Driver.Linq
  2. Класс с несколькими полями, наследующий другой класс, который просто предоставляет стандартное поле ObjectId Id.
  3. Ссылка на коллекцию указанного класса типа MongoCollection, полученную Connection.GetCollection.
  4. Наконец, мой запрос - из элемента в MyCollection.AsQueryable() выберите элемент;

Компилятор жалуется, что ошибка: не удалось найти реализацию шаблона запроса...

Чего не хватает?

---РЕДАКТИРОВАТЬ---

Я минимизировал код здесь, чтобы проиллюстрировать проблему -

// .Net
using System.Collections.Generic;

// 3rd Party
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Builders;
using MongoDB.Driver.Linq;

namespace Chess2.Server {
    public static partial class Database {
        internal static MongoCollection<Document> Collection =
            GetCollection<Document>();
    }
    public class Document {
        public ObjectId Id;
        public int Field;

        public static IEnumerable<Document> Waiting() {
            // HERE IS THE LINQ THAT DOESN"T WORK
            return from item in
                       Database.Collection.AsQueryable<Document>()
                   where item.Field > 0
                   select item;
        }
    }
}

2 ответа

Решение

Чтобы найти поставщика Linq, нужно иметь не только оператор использования для поставщика, но и сам System.Linq.

Вам не хватает запрашиваемого типа, по крайней мере, так я думаю после просмотра учебной ссылки. Если это против MongoCollectionЯ думаю, ваш запрос должен был быть:

var query = from item in MyCollection.AsQueryable<MongoCollection>() select item;
Другие вопросы по тегам