语言

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
[System.Runtime.CompilerServices.Nullable(0)]
public abstract class RelationalDatabaseCreator : 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
[<System.Runtime.CompilerServices.Nullable(0)>]
type RelationalDatabaseCreator = class
    interface IRelationalDatabaseCreator
    interface IDatabaseCreator
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 可能会在将来的版本中更改或删除。

适用于