/// <summary>
        /// Register a database that will hold data for multiple conjoined tenants
        /// </summary>
        /// <param name="connectionString"></param>
        /// <param name="databaseIdentifier">A descriptive name for this database. If omitted, this will be derived from the connection string</param>
        /// <returns></returns>
        public IDatabaseExpression AddMultipleTenantDatabase(string connectionString, string databaseIdentifier = null)
        {
            var builder    = new NpgsqlConnectionStringBuilder(connectionString);
            var identifier = databaseIdentifier ?? $"{builder.Database}@{builder.Host}";

            var database = new MartenDatabase(Options, new ConnectionFactory(connectionString), identifier);

            _databases = _databases.AddOrUpdate(identifier, database);

            return(new DatabaseExpression(this, database));
        }
        public void AddSingleTenantDatabase(string connectionString, string tenantId)
        {
            var database = new MartenDatabase(Options, new ConnectionFactory(connectionString), tenantId);

            _databases = _databases.AddOrUpdate(tenantId, database);

            var expression = new DatabaseExpression(this, database).ForTenants(tenantId);

            if (Default == null)
            {
                expression.AsDefault();
            }
        }
 internal DatabaseExpression(StaticMultiTenancy parent, MartenDatabase database)
 {
     _parent   = parent;
     _database = database;
 }