protected SqlDatabaseContext(DataAccessModel model, SqlDialect sqlDialect, SqlDataTypeProvider sqlDataTypeProvider, SqlQueryFormatterManager sqlQueryFormatterManager, string databaseName, SqlDatabaseContextInfo contextInfo)
{
this.DatabaseName = databaseName;
this.DataAccessModel = model;
this.CommandTimeout = contextInfo.CommandTimeout == null ? null : (TimeSpan?)TimeSpan.FromSeconds(contextInfo.CommandTimeout.Value);
var categories = contextInfo.Categories ?? "";
this.ContextCategories = categories.Trim().Length == 0 ? new string[0] : categories.Split(',').Select(c => c.Trim()).ToArray();
this.SqlDialect = sqlDialect;
this.SqlDataTypeProvider = sqlDataTypeProvider;
this.SqlQueryFormatterManager = sqlQueryFormatterManager;
this.SchemaName = EnvironmentSubstitutor.Substitute(contextInfo.SchemaName);
this.TableNamePrefix = EnvironmentSubstitutor.Substitute(contextInfo.TableNamePrefix);
}