#20539: Using reliable transactions when on SQL Azure

Work Item: 20539
This commit is contained in:
Lombiq
2014-03-19 01:31:20 +01:00
committed by Zoltán Lehóczky
parent 632749b145
commit bb9070098d

View File

@@ -27,7 +27,7 @@ namespace Orchard.Data.Providers {
persistence = persistence.ConnectionString(_connectionString);
// when using Sql Server Azure, use a specific driver, c.f. https://orchard.codeplex.com/workitem/19315
if (_connectionString.ToLowerInvariant().Contains("database.windows.net")) {
if (IsAzureSql()) {
persistence = persistence.Driver<SqlAzureClientDriver>();
}
@@ -36,6 +36,14 @@ namespace Orchard.Data.Providers {
protected override void AlterConfiguration(Configuration config) {
config.SetProperty(NHibernate.Cfg.Environment.PrepareSql, Boolean.TrueString);
if (IsAzureSql()) {
config.SetProperty(NHibernate.Cfg.Environment.TransactionStrategy, typeof(ReliableAdoNetWithDistributedTransactionFactory).AssemblyQualifiedName);
}
}
private bool IsAzureSql() {
return _connectionString.ToLowerInvariant().Contains("database.windows.net");
}
}
}