sql >> データベース >  >> NoSQL >> MongoDB

'MongoDB.Driver.IMongoCollection<>'から'System.Collections.Generic.IEnumerable<>'に変換できません

    新しいMongoDBドライバーでは、すべてが非同期メソッドに基づいているため、データをクエリするための古いメソッドは適用されなくなりました。

    基本的に、findメソッドを使用してMongoRepositoryクラスを作成する必要があり、そのリポジトリには次のFindメソッドを含めることができます。

    public class MongoRepository<T>
    {
    
        protected IMongoCollection<T> _collection;
    
        public MongoRepository(string collectionName) 
        {
            // Get your mongo client and database objects here.
            _collection = _mongoDb.GetCollection<T>(collectionName);
        }
    
        public async Task<IList<T>> Find(Expression<Func<T, bool>> query)
        {
            // Return the enumerable of the collection
            return await _collection.Find<T>(query).ToListAsync();
        }
    
    }
    

    これは次のように実装できます:

    MongoRepository<Registration> repo = new MongoRepository("Registrations");
    IList<Registration> registrations = repo.Find(i => i.SomeProperty == true);
    

    APIへの変更を実装する方法に関するいくつかの良い情報がここにあります: http://mongodb.github.io/mongo-csharp-driver/2.0/upgrading/



    1. 起動時のMongodbエラー

    2. Mongoose pre.save()非同期ミドルウェアが期待どおりに機能しない

    3. サーバー上のMeteorでのmongodbdistinct()の実装?

    4. AzureVMはAzureRedisCacheに接続していませんが、ローカルはAzureRedisCacheに接続しています