为什么linq找不到mongodb的实现?

本文关键字:实现 mongodb linq 找不到 为什么 | 更新日期: 2023-09-27 17:50:47

我正在尝试使用linq在c#与mongodb每教程这里http://docs.mongodb.org/ecosystem/tutorial/use-linq-queries-with-csharp-driver/

:

    MongoDB.Driver.Linq的using指令
  1. 一个有几个字段的类,继承另一个只提供标准ObjectId Id字段的类。
  2. 对所述类的集合的引用,该类的类型为MongoCollection。GetCollection
  3. 最后,我的查询-从项目在MyCollection.AsQueryable()选择项目;

编译器报错:Could not find a implementation of The query pattern.

缺少什么?

——编辑——

我已经最小化了这里的代码来说明问题-

// .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;
        }
    }
}

为什么linq找不到mongodb的实现?

你缺少可查询的类型,至少在看了教程链接后我是这么认为的。如果是对MongoCollection的查询,我认为您的查询应该是:

var query = from item in MyCollection.AsQueryable<MongoCollection>() select item;

为了找到Linq提供程序,不仅要有提供程序的using语句,还要有System语句。Linq本身。