sql >> Databasteknik >  >> NoSQL >> MongoDB

kan inte konvertera från 'MongoDB.Driver.IMongoCollection<>' till 'System.Collections.Generic.IEnumerable<>'

I den nya MongoDB-drivrutinen är allt nu baserat på asynkmetoder, så de gamla metoderna för att fråga data gäller inte längre.

I grund och botten skulle du vilja skapa en MongoRepository-klass, med en sökmetod, och det förvaret kan ha följande sökmetod:

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();
    }

}

Detta kan sedan implementeras så här:

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

Det finns lite bra information om hur ändringarna av API:t kan implementeras här:http://mongodb.github.io/mongo-csharp-driver/2.0/upgrading/



  1. Skapa dynamiskt schema med mongoose

  2. syntax för att länka dokument i mongodb

  3. Använder UUID istället för ObjectIDs i MongoDB

  4. Webbskrapning och genomsökning med Scrapy och MongoDB