public MongoDbContext(string connectionString, ILogger <MongoDbContext> logger, ICollectionNameProvider collectionNameProvider) { var connection = new MongoUrlBuilder(connectionString); // check db is set in the connection string and not admin db if (string.IsNullOrEmpty(connection.DatabaseName) || connection.DatabaseName.ToLower() == "admin") { throw new ArgumentException("DB must be set in the connection string and not be admin."); } #if DEBUG _client = new MongoClient(connectionString); var settigs = MongoClientSettings.FromConnectionString(connectionString); settigs.ClusterConfigurator = cb => { cb.Subscribe <CommandStartedEvent>(e => { logger.LogInformation($"{e.CommandName} - {e.Command.ToJson()}"); }); }; _client = new MongoClient(settigs); #else _client = new MongoClient(connectionString); #endif Db = _client.GetDatabase(connection.DatabaseName); Logger = logger; _collectionNameProvider = collectionNameProvider; }
public MongoCollectionProvider(ICollectionNameProvider <TEntity> collectionNameProvider, IOptions <DbOption> dbOption) { _collectionNameProvider = collectionNameProvider; _databaseName = dbOption.Value.DataBase; _connectionString = dbOption.Value.MongoConnectionString; }
public MongoCollectionProvider(ICollectionNameProvider <TEntity> collectionNameProvider) { this._collectionNameProvider = collectionNameProvider; }