RelationalDatabaseCreator 类

定义

执行数据库/架构创建和其他相关操作。

此类型通常由数据库提供程序 (和其他扩展) 使用。 它通常不在应用程序代码中使用。

public abstract class RelationalDatabaseCreator : Microsoft.EntityFrameworkCore.Storage.IDatabaseCreator, Microsoft.EntityFrameworkCore.Storage.IRelationalDatabaseCreator
public abstract class RelationalDatabaseCreator : Microsoft.EntityFrameworkCore.Internal.IServiceInjectionSite, Microsoft.EntityFrameworkCore.Storage.IDatabaseCreator, Microsoft.EntityFrameworkCore.Storage.IRelationalDatabaseCreator
public abstract class RelationalDatabaseCreator : Microsoft.EntityFrameworkCore.Storage.IDatabaseCreatorWithCanConnect, Microsoft.EntityFrameworkCore.Storage.IRelationalDatabaseCreator
type RelationalDatabaseCreator = class
    interface IRelationalDatabaseCreator
    interface IDatabaseCreator
type RelationalDatabaseCreator = class
    interface IRelationalDatabaseCreator
    interface IDatabaseCreator
    interface IServiceInjectionSite
type RelationalDatabaseCreator = class
    interface IRelationalDatabaseCreator
    interface IDatabaseCreator
    interface IDatabaseCreatorWithCanConnect
Public MustInherit Class RelationalDatabaseCreator
Implements IDatabaseCreator, IRelationalDatabaseCreator
Public MustInherit Class RelationalDatabaseCreator
Implements IDatabaseCreator, IRelationalDatabaseCreator, IServiceInjectionSite
Public MustInherit Class RelationalDatabaseCreator
Implements IDatabaseCreatorWithCanConnect, IRelationalDatabaseCreator
继承
RelationalDatabaseCreator
实现
IDatabaseCreator IRelationalDatabaseCreator Microsoft.EntityFrameworkCore.Internal.IServiceInjectionSite IDatabaseCreatorWithCanConnect

注解

服务生存期为 Scoped。 这意味着每个 DbContext 实例都将使用此服务自己的实例。 实现可能依赖于使用任何生存期注册的其他服务。 实现不需要是线程安全的。

有关详细信息 和示例,请参阅数据库提供程序和扩展的实现

构造函数

RelationalDatabaseCreator(IModel, IRelationalConnection, IMigrationsModelDiffer, IMigrationsSqlGenerator, IMigrationCommandExecutor, IExecutionStrategyFactory)

初始化 RelationalDatabaseCreator 类的新实例。

RelationalDatabaseCreator(IModel, IRelationalConnection, IMigrationsModelDiffer, IMigrationsSqlGenerator, IMigrationCommandExecutor)
已过时.

初始化 RelationalDatabaseCreator 类的新实例。

RelationalDatabaseCreator(RelationalDatabaseCreatorDependencies)

初始化 RelationalDatabaseCreator 类的新实例。

属性

Connection

获取数据库的连接。

Dependencies

此服务的关系提供程序特定的依赖项。

ExecutionStrategyFactory

获取 IExecutionStrategyFactory 要使用的 。

MigrationCommandExecutor

获取 IMigrationCommandExecutor 要使用的 。

Model

获取此创建者正在使用的上下文的模型。

方法

CanConnect()

确定数据库是否可用以及是否可以连接到。

CanConnectAsync(CancellationToken)

确定数据库是否可用以及是否可以连接到。

Create()

创建物理数据库。 不要尝试使用任何架构填充它。

CreateAsync(CancellationToken)

异步创建物理数据库。 不要尝试使用任何架构填充它。

CreateTables()

为数据库中的当前模型创建所有表。 不会尝试以增量方式更新架构。 假定数据库中不存在任何表。

CreateTablesAsync(CancellationToken)

异步为数据库中的当前模型创建所有表。 不会尝试以增量方式更新架构。 假定数据库中不存在任何表。

Delete()

删除物理数据库。

DeleteAsync(CancellationToken)

异步删除物理数据库。

EnsureCreated()

确保上下文的数据库存在。 如果存在,则不需要任何操作。 如果不存在,则会创建数据库及其所有架构。 如果数据库存在,则无需努力确保它与此上下文的模型兼容。

EnsureCreatedAsync(CancellationToken)

异步确保上下文的数据库存在。 如果存在,则不需要任何操作。 如果不存在,则会创建数据库及其所有架构。 如果数据库存在,则无需努力确保它与此上下文的模型兼容。

EnsureDeleted()

确保上下文的数据库不存在。 如果不存在,则不执行任何操作。 如果该数据库确实存在,则删除该数据库。

警告:将删除整个数据库,并且不会仅删除模型用于此上下文的数据库对象。

EnsureDeletedAsync(CancellationToken)

异步确保上下文的数据库不存在。 如果不存在,则不执行任何操作。 如果该数据库确实存在,则删除该数据库。

警告:将删除整个数据库,并且不会仅删除模型用于此上下文的数据库对象。

Exists()

确定物理数据库是否存在。 未尝试确定数据库是否包含当前模型的架构。

ExistsAsync(CancellationToken)

异步确定物理数据库是否存在。 未尝试确定数据库是否包含当前模型的架构。

GenerateCreateScript()

生成一个脚本,用于为当前模型创建所有表。

GetCreateTablesCommands()

获取将从模型创建所有表的命令。

GetCreateTablesCommands(MigrationsSqlGenerationOptions)

获取将从模型创建所有表的命令。

HasTables()

确定数据库是否包含任何表。 不尝试确定表是否属于当前模型。

HasTablesAsync(CancellationToken)

异步确定数据库是否包含任何表。 不尝试确定表是否属于当前模型。

显式接口实现

IServiceInjectionSite.InjectServices(IServiceProvider)

此 API 支持 Entity Framework Core 基础结构,不应直接从代码使用。 将来的版本中可能会更改或删除此 API。

适用于