Non preoccuparti troppo di aprire e chiudere connessioni. Il driver MongoDB C# mantiene un pool di connessioni interno, quindi non subirai i costi di apertura e chiusura delle connessioni effettive ogni volta che crei un nuovo MongoServer
oggetto.
È possibile creare un'interfaccia del repository che esponga la logica dei dati e creare un'implementazione MongoDB che venga iniettata dove è necessario. In questo modo, il codice di connessione specifico di MongoDB viene estratto dalla tua applicazione, che vede solo IRepository.
Fai attenzione a provare a implementare un modello di tipo unità di lavoro con MongoDB. A differenza di SQL Server, non è possibile integrare più query in una transazione di cui è possibile eseguire il rollback in caso di errore.
Per un semplice esempio di pattern di repository con implementazioni MongoDB, SQL Server e JSON, dai un'occhiata a Codice di archiviazione NBlog . Utilizza Autofac IoC per iniettare repository concreti in un'app ASP.NET MVC.