示例#1
0
        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;
        }
示例#2
0
        public MongoCollectionProvider(ICollectionNameProvider <TEntity> collectionNameProvider, IOptions <DbOption> dbOption)
        {
            _collectionNameProvider = collectionNameProvider;

            _databaseName = dbOption.Value.DataBase;

            _connectionString = dbOption.Value.MongoConnectionString;
        }
示例#3
0
 public MongoCollectionProvider(ICollectionNameProvider <TEntity> collectionNameProvider)
 {
     this._collectionNameProvider = collectionNameProvider;
 }