Files
Umbraco-CMS/src/Umbraco.Web/UmbracoDbProviderFactoryCreator.cs

66 lines
2.1 KiB
C#
Raw Normal View History

using System;
2019-12-12 08:11:23 +01:00
using System.Data.Common;
2019-12-18 10:32:22 +01:00
using System.Data.SqlServerCe;
using Umbraco.Core;
2019-12-18 10:32:22 +01:00
using Umbraco.Core.Migrations.Install;
2019-12-12 08:11:23 +01:00
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.SqlSyntax;
2019-12-12 08:11:23 +01:00
namespace Umbraco.Web
{
public class UmbracoDbProviderFactoryCreator : IDbProviderFactoryCreator
{
private readonly string _defaultProviderName;
public UmbracoDbProviderFactoryCreator(string defaultProviderName)
{
_defaultProviderName = defaultProviderName;
}
public DbProviderFactory CreateFactory()
{
return CreateFactory(_defaultProviderName);
}
public DbProviderFactory CreateFactory(string providerName)
{
if (string.IsNullOrEmpty(providerName)) return null;
return DbProviderFactories.GetFactory(providerName);
}
// gets the sql syntax provider that corresponds, from attribute
public ISqlSyntaxProvider GetSqlSyntaxProvider(string providerName)
{
switch (providerName)
{
case Constants.DbProviderNames.SqlCe:
return new SqlCeSyntaxProvider();
case Constants.DbProviderNames.SqlServer:
return new SqlServerSyntaxProvider();
default:
throw new InvalidOperationException($"Unknown provider name \"{providerName}\"");
}
}
2019-12-18 10:32:22 +01:00
public IBulkSqlInsertProvider CreateBulkSqlInsertProvider(string providerName)
{
switch (providerName)
{
case Constants.DbProviderNames.SqlCe:
return new SqlCeBulkSqlInsertProvider();
case Constants.DbProviderNames.SqlServer:
return new SqlServerBulkSqlInsertProvider();
default:
return new BasicBulkSqlInsertProvider();
}
}
2019-12-18 10:32:22 +01:00
public void CreateDatabase()
{
var engine = new SqlCeEngine(DatabaseBuilder.EmbeddedDatabaseConnectionString);
engine.CreateDatabase();
}
2019-12-12 08:11:23 +01:00
}
}