Class UmbracoDatabaseFactory
Default implementation of IUmbracoDatabaseFactory.
Namespace: Umbraco.Cms.Infrastructure.Persistence
Assembly: Umbraco.Infrastructure.dll
Syntax
public class UmbracoDatabaseFactory : DisposableObjectSlim, IUmbracoDatabaseFactory
Remarks
This factory implementation creates and manages an "ambient" database connection. When running within an Http context, "ambient" means "associated with that context". Otherwise, it means "static to the current thread". In this latter case, note that the database connection object is not thread safe.
It wraps an NPoco UmbracoDatabaseFactory which is initializes with a proper IPocoDataFactory to ensure that NPoco's plumbing is cached appropriately for the whole application.
Constructors
View SourceUmbracoDatabaseFactory(ILogger<UmbracoDatabaseFactory>, ILoggerFactory, IOptions<GlobalSettings>, IOptionsMonitor<ConnectionStrings>, IMapperCollection, IDbProviderFactoryCreator, DatabaseSchemaCreatorFactory, NPocoMapperCollection)
Initializes a new instance of the UmbracoDatabaseFactory.
Declaration
public UmbracoDatabaseFactory(ILogger<UmbracoDatabaseFactory> logger, ILoggerFactory loggerFactory, IOptions<GlobalSettings> globalSettings, IOptionsMonitor<ConnectionStrings> connectionStrings, IMapperCollection mappers, IDbProviderFactoryCreator dbProviderFactoryCreator, DatabaseSchemaCreatorFactory databaseSchemaCreatorFactory, NPocoMapperCollection npocoMappers)
Parameters
Type | Name | Description |
---|---|---|
ILogger<UmbracoDatabaseFactory> | logger | |
ILoggerFactory | loggerFactory | |
IOptions<GlobalSettings> | globalSettings | |
IOptionsMonitor<ConnectionStrings> | connectionStrings | |
IMapperCollection | mappers | |
IDbProviderFactoryCreator | dbProviderFactoryCreator | |
DatabaseSchemaCreatorFactory | databaseSchemaCreatorFactory | |
NPocoMapperCollection | npocoMappers |
Remarks
Used by the other ctor and in tests.
Properties
View SourceBulkSqlInsertProvider
Gets the IBulkSqlInsertProvider.
Declaration
public IBulkSqlInsertProvider BulkSqlInsertProvider { get; }
Property Value
Type | Description |
---|---|
IBulkSqlInsertProvider |
Remarks
Getting the IBulkSqlInsertProvider causes the factory to initialize if it is not already initialized.
CanConnect
Gets a value indicating whether the database factory is configured (see Configured), and it is possible to connect to the database. The factory may however not be initialized (see Initialized).
Declaration
public bool CanConnect { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Configured
Gets a value indicating whether the database factory is configured, i.e. whether its connection string and provider name have been set. The factory may however not be initialized (see Initialized).
Declaration
public bool Configured { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
ConnectionString
Gets the connection string.
Declaration
public string ConnectionString { get; }
Property Value
Type | Description |
---|---|
System.String |
Remarks
May return null
if the database factory is not configured.
Initialized
Gets a value indicating whether the database factory is initialized, i.e. whether its internal state is ready and it has been possible to connect to the database.
Declaration
public bool Initialized { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
ProviderName
Gets the provider name.
Declaration
public string ProviderName { get; }
Property Value
Type | Description |
---|---|
System.String |
Remarks
May return null
if the database factory is not configured.
SqlContext
Gets the ISqlContext.
Declaration
public ISqlContext SqlContext { get; }
Property Value
Type | Description |
---|---|
ISqlContext |
Remarks
Getting the ISqlContext causes the factory to initialize if it is not already initialized.
Methods
View SourceConfigure(ConnectionStrings)
Configures the database factory.
Declaration
public void Configure(ConnectionStrings umbracoConnectionString)
Parameters
Type | Name | Description |
---|---|---|
ConnectionStrings | umbracoConnectionString |
ConfigureForUpgrade()
Configures the database factory for upgrades.
Declaration
public void ConfigureForUpgrade()
CreateDatabase()
Creates a new database.
Declaration
public IUmbracoDatabase CreateDatabase()
Returns
Type | Description |
---|---|
IUmbracoDatabase |
Remarks
The new database must be disposed after being used.
Creating a database causes the factory to initialize if it is not already initialized.
DisposeResources()
Declaration
protected override void DisposeResources()