diff --git a/src/Umbraco.Core/Persistence/DefaultDatabaseFactory.cs b/src/Umbraco.Core/Persistence/DefaultDatabaseFactory.cs
index 8789274600..bb2b12ac36 100644
--- a/src/Umbraco.Core/Persistence/DefaultDatabaseFactory.cs
+++ b/src/Umbraco.Core/Persistence/DefaultDatabaseFactory.cs
@@ -13,7 +13,8 @@ namespace Umbraco.Core.Persistence
///
internal class DefaultDatabaseFactory : DisposableObject, IDatabaseFactory
{
- private readonly string _connectionString;
+ private readonly string _connectionStringName;
+ private readonly string _connectionString;
private readonly string _providerName;
private static volatile UmbracoDatabase _globalInstance = null;
private static readonly object Locker = new object();
@@ -29,18 +30,18 @@ namespace Umbraco.Core.Persistence
///
/// Constructor accepting custom connection string
///
- ///
- public DefaultDatabaseFactory(string connectionString)
+ /// Name of the connection string in web.config
+ public DefaultDatabaseFactory(string connectionStringName)
{
- Mandate.ParameterNotNullOrEmpty(connectionString, "connectionString");
- _connectionString = connectionString;
+ Mandate.ParameterNotNullOrEmpty(connectionStringName, "connectionStringName");
+ _connectionStringName = connectionStringName;
}
///
/// Constructor accepting custom connectino string and provider name
///
- ///
- ///
+ /// Connection String to use with Database
+ /// Database Provider for the Connection String
public DefaultDatabaseFactory(string connectionString, string providerName)
{
Mandate.ParameterNotNullOrEmpty(connectionString, "connectionString");
@@ -61,9 +62,9 @@ namespace Umbraco.Core.Persistence
//double check
if (_globalInstance == null)
{
- _globalInstance = string.IsNullOrEmpty(_providerName)
- ? new UmbracoDatabase(_connectionString)
- : new UmbracoDatabase(_connectionString, _providerName);
+ _globalInstance = string.IsNullOrEmpty(_providerName) == false && string.IsNullOrEmpty(_providerName) == false
+ ? new UmbracoDatabase(_connectionString, _providerName)
+ : new UmbracoDatabase(_connectionStringName);
}
}
}
@@ -74,9 +75,9 @@ namespace Umbraco.Core.Persistence
if (!HttpContext.Current.Items.Contains(typeof(DefaultDatabaseFactory)))
{
HttpContext.Current.Items.Add(typeof (DefaultDatabaseFactory),
- string.IsNullOrEmpty(_providerName)
- ? new UmbracoDatabase(_connectionString)
- : new UmbracoDatabase(_connectionString, _providerName));
+ string.IsNullOrEmpty(_providerName) == false && string.IsNullOrEmpty(_providerName) == false
+ ? new UmbracoDatabase(_connectionString, _providerName)
+ : new UmbracoDatabase(_connectionStringName));
}
return (UmbracoDatabase)HttpContext.Current.Items[typeof(DefaultDatabaseFactory)];
}
diff --git a/src/Umbraco.Core/Persistence/UnitOfWork/PetaPocoUnitOfWorkProvider.cs b/src/Umbraco.Core/Persistence/UnitOfWork/PetaPocoUnitOfWorkProvider.cs
index 21ab8cded4..fbdae5b5e4 100644
--- a/src/Umbraco.Core/Persistence/UnitOfWork/PetaPocoUnitOfWorkProvider.cs
+++ b/src/Umbraco.Core/Persistence/UnitOfWork/PetaPocoUnitOfWorkProvider.cs
@@ -1,5 +1,4 @@
-using System;
-using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration;
namespace Umbraco.Core.Persistence.UnitOfWork
{
@@ -19,6 +18,14 @@ namespace Umbraco.Core.Persistence.UnitOfWork
}
+ ///
+ /// Constructor accepting custom connectino string and provider name
+ ///
+ /// Connection String to use with Database
+ /// Database Provider for the Connection String
+ public PetaPocoUnitOfWorkProvider(string connectionString, string providerName) : this(new DefaultDatabaseFactory(connectionString, providerName))
+ {}
+
///
/// Constructor accepting an IDatabaseFactory instance
///