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

Was ist der richtige Weg, um MongoDB-Verbindungen in ASP.Net MVC zu verwalten?

In der offiziellen Dokumentation Es wird angegeben, dass MongoServer , MongoDatabase , und MongoCollection Thread-sicher sind und dass Sie einen einzigen MongoServer erstellen sollten für jede Datenbank, mit der Sie sich verbinden.

Also MongoServer , MongoDatabase , und MongoCollection können sicher als Singletons konfiguriert werden. MongoServer wird sogar dabei helfen, dies durchzusetzen, indem dieselbe MongoDatabase zurückgegeben wird Instanz für aufeinanderfolgende Aufrufe und MongoDatabase wird dasselbe für MongoCollection tun s.

Dh Ihr MongoServer -Instanz kann sicher so konfiguriert werden, dass sie einen Singleton-Lebensstil in Ihrem IoC-Container hat, und Sie können genauso gut eine Injektion für MongoDatabase einrichten und vielleicht sogar MongoCollection auch.

Ich verwende diese Strategie selbst mit Windsor - Sie können meinen MongoInstaller sehen hier:https://gist.github.com/2427676 - es erlaubt meinen Klassen, einfach weiterzumachen und dies zu tun:

public class SomeClass
{
    public SomeClass(MongoCollection<Person> people)
    { ... }
}

um eine Sammlung injiziert zu haben, schön und gebrauchsfertig.