MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Qual é a maneira correta de gerenciar conexões MongoDB no ASP.Net MVC?


Na documentação oficial afirma-se que MongoServer , MongoDatabase , e MongoCollection são thread-safe, e que você deve criar um único MongoServer para cada banco de dados ao qual você se conecta.

Assim, MongoServer , MongoDatabase , e MongoCollection podem ser configurados com segurança para serem singletons. MongoServer ajudará até mesmo a impor isso retornando o mesmo MongoDatabase instância para chamadas sucessivas e MongoDatabase fará a mesma coisa para MongoCollection s.

Ou seja seu MongoServer instância pode ser configurada com segurança para ter um estilo de vida singleton em seu contêiner IoC, e você também pode configurar a injeção para MongoDatabase e talvez até MongoCollection também.

Estou usando essa estratégia com o Windsor - você pode ver meu MongoInstaller aqui:https://gist.github.com/2427676 - permite que minhas classes apenas sigam em frente e façam isso:
public class SomeClass
{
    public SomeClass(MongoCollection<Person> people)
    { ... }
}

para ter uma coleção injetada, bonita e pronta para uso.