Il codice di esempio di @Robby funziona, ma non restituisce ciò che il codice è in attesa; restituisce oggetti di interfaccia. Il driver C# è stato aggiornato per utilizzare i metodi Interface
e un certo numero di funzioni asincrone, pertanto l'aggiornamento del codice è probabilmente una buona idea.
Il nuovo modo di ottenere un database è - beh, non si ottiene più un database. Ottiene un IMongoDatabase
che è un'interfaccia al database. Inoltre, non dovresti più lavorare con MongoDatabase
s (dall'oggetto), quando avrai un IMongoDatabase
lavorerai con un IMongoCollection
. Refactoring? Scommetti! Ma ne vale la pena.
Si consiglia inoltre di inserire il database predefinito nelle stringhe di connessione in formato Mongo. In questo modo puoi mantenere costanti codificate, come il nome del database, fuori dal tuo codice.
// Get your connection string -- use the URL format as in example below:
// name="MongoConnectionStr" connectionString="mongodb://localhost/bookstore"
var connectionString = ConfigurationManager.ConnectionStrings["MongoConnectionStr"].ConnectionString;
var mongoUrl = MongoUrl.Create(connectionString);
var client = new MongoClient(connectionString);
// Use the Mongo URL to avoid hard-coding the database name.
var db = new MongoClient(mongoUrl).GetDatabase(mongoUrl.DatabaseName);
// books below is an IMongoCollection
var books = db.GetCollection<Book>("Books");
fonte
2016-11-16 23:10:35
ho provato, ma quando chiamo getDatabase() dal client. bookCollection.Save (libro) non ha funzionato. Ho provato a eseguire bookCollection.InsertOneAsync (libro); Niente è cambiato. Puoi spiegarmi? Tks per il tuo aiuto così tanto. – Hana
@Hana Scusa, vorrei dare una mano in più, ma non ho accesso a un computer Windows. –
L'uso di 'mongoClient.GetDatabase' mi dà un errore che dice' "MongoClient non contiene una definizione per GetDatabase" '. Quindi qual è la soluzione alternativa per ottenere il database con il suo nome? – Rai