Skip to content

Instantly share code, notes, and snippets.

@davidknipe
Last active August 29, 2015 14:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davidknipe/d5547f4d9f5ee5bcc14b to your computer and use it in GitHub Desktop.
Save davidknipe/d5547f4d9f5ee5bcc14b to your computer and use it in GitHub Desktop.
Custom IDatabaseFactory implementation for EPiServer
public class CustomIDatabaseFactory : SqlDatabaseFactory, IDatabaseFactory
{
public new IDatabaseHandler CreateDefaultHandler()
{
SiteDataSettingsElement currentSiteSettings = this.GetCurrentSiteSettings();
ConnectionStringSettings connectionStringSettings = EPiServerDataStoreSection.ConfigurationInstance.ConnectionStrings.ConnectionStrings[currentSiteSettings.ConnectionStringName];
if (connectionStringSettings == null)
{
throw new ConfigurationErrorsException(string.Format(CultureInfo.InvariantCulture, "No connection string found with the configured name '{0}'.", new object[] { currentSiteSettings.ConnectionStringName }));
}
connectionStringSettings.ConnectionString = "<Your custom implementation connection string here>";
return new SqlDatabaseHandler(connectionStringSettings, currentSiteSettings.Retries, currentSiteSettings.RetryDelay, currentSiteSettings.DatabaseQueryTimeout);
}
public new IDatabaseHandler CreateHandler(ConnectionStringSettings connectionString)
{
connectionString.ConnectionString = "<Your custom implementation connection string here>";
return base.CreateHandler(connectionString);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment