MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Konvertierung von „MongoDB.Driver.IMongoCollection<>“ in „System.Collections.Generic.IEnumerable<>“ nicht möglich

Im neuen MongoDB Driver basiert das Ganze nun auf async-Methoden, die alten Methoden zur Datenabfrage entfallen also.

Grundsätzlich möchten Sie eine MongoRepository-Klasse mit einer Find-Methode erstellen, und dieses Repository könnte die folgende Find-Methode haben:

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

}

Dies könnte dann folgendermaßen implementiert werden:

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

Hier gibt es einige gute Informationen, wie die Änderungen an der API implementiert werden können:http://mongodb.github.io/mongo-csharp-driver/2.0/upgrading/