DatabaseFacade 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供对上下文的数据库相关信息和操作的访问。 此类的实例通常是从 Database 中获取的,它不是在应用程序代码中直接构造的。
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependenciesAccessor
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Storage.IDatabaseFacadeDependenciesAccessor
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Infrastructure.IResettableService, Microsoft.EntityFrameworkCore.Storage.IDatabaseFacadeDependenciesAccessor
type DatabaseFacade = class
interface IInfrastructure<IServiceProvider>
type DatabaseFacade = class
interface IInfrastructure<IServiceProvider>
interface IDatabaseFacadeDependenciesAccessor
type DatabaseFacade = class
interface IInfrastructure<IServiceProvider>
interface IDatabaseFacadeDependenciesAccessor
interface IResettableService
Public Class DatabaseFacade
Implements IInfrastructure(Of IServiceProvider)
Public Class DatabaseFacade
Implements IDatabaseFacadeDependenciesAccessor, IInfrastructure(Of IServiceProvider)
Public Class DatabaseFacade
Implements IDatabaseFacadeDependenciesAccessor, IInfrastructure(Of IServiceProvider), IResettableService
- 继承
-
DatabaseFacade
- 实现
-
IInfrastructure<IServiceProvider> Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependenciesAccessor IDatabaseFacadeDependenciesAccessor IResettableService
构造函数
DatabaseFacade(DbContext) |
初始化 DatabaseFacade 类的新实例。 此类的实例通常是从 Database 中获取的,它不设计为在应用程序代码中直接构造。 |
属性
AutoSavepointsEnabled |
如果在使用 手动启动BeginTransaction()事务后调用事务保存点,是否会自动创建SaveChanges()事务保存点。 |
AutoTransactionBehavior |
获取或设置一个值,该值指示如果未调用“BeginTransaction”和“UseTransaction”,则是否自动 SaveChanges() 创建事务。 |
AutoTransactionsEnabled |
已过时。.
已过时。.
获取或设置一个值,该值指示如果未调用任何“BeginTransaction”或“UseTransaction”方法,是否自动 SaveChanges() 创建事务。 |
CurrentTransaction |
获取上下文正在使用的当前 IDbContextTransaction ,如果未使用事务,则为 null。 |
ProviderName |
返回当前正在使用的数据库提供程序的名称。 该名称通常是提供程序程序集的名称。 使用糖方法(如 ) Microsoft.EntityFrameworkCore.SqlServerDatabaseFacadeExtensions.IsSqlServer 通常更容易,而不是直接调用此方法。 |
方法
BeginTransaction() |
启动新事务。 |
BeginTransactionAsync(CancellationToken) |
异步启动新事务。 |
CanConnect() |
确定数据库是否可用以及是否可以连接到。 |
CanConnectAsync(CancellationToken) |
确定数据库是否可用以及是否可以连接到。 |
CommitTransaction() |
将当前事务中未完成的操作应用于数据库。 |
CommitTransactionAsync(CancellationToken) |
将当前事务中未完成的操作应用于数据库。 |
CreateExecutionStrategy() |
创建已配置的 IExecutionStrategy的实例。 |
EnsureCreated() |
确保上下文的数据库存在。 |
EnsureCreatedAsync(CancellationToken) |
确保上下文的数据库存在。 |
EnsureDeleted() |
确保上下文的数据库不存在。 如果不存在,则不执行任何操作。 如果该数据库确实存在,则删除该数据库。 警告:将删除整个数据库,并且不会仅删除模型用于此上下文的数据库对象。 |
EnsureDeletedAsync(CancellationToken) |
异步确保上下文的数据库不存在。 如果不存在,则不执行任何操作。 如果该数据库确实存在,则删除该数据库。 警告:将删除整个数据库,并且不会仅删除模型用于此上下文的数据库对象。 |
RollbackTransaction() |
放弃当前事务中的未完成操作。 |
RollbackTransactionAsync(CancellationToken) |
放弃当前事务中的未完成操作。 |
显式接口实现
IDatabaseFacadeDependenciesAccessor.Context |
这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,恕不另行通知。 应仅在代码中直接使用它,并且非常谨慎,并且知道在更新到新的 Entity Framework Core 版本时,这样做可能会导致应用程序失败。 |
IDatabaseFacadeDependenciesAccessor.Dependencies |
这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,恕不另行通知。 应仅在代码中直接使用它,并且非常谨慎,并且知道在更新到新的 Entity Framework Core 版本时,这样做可能会导致应用程序失败。 |
IInfrastructure<IServiceProvider>.Instance |
获取用于解析服务的作用域 IServiceProvider 。 此属性适用于需要使用未在公共 API 图面中直接公开的服务的扩展方法。 |
IResettableService.ResetState() |
重置服务,以便可以从池使用它。 |
IResettableService.ResetStateAsync(CancellationToken) |
提供对上下文的数据库相关信息和操作的访问。 此类的实例通常是从 Database 中获取的,它不是在应用程序代码中直接构造的。 |
扩展方法
GetCosmosClient(DatabaseFacade) |
获取此 DbContext的基础 CosmosClient 。 |
GetCosmosDatabaseId(DatabaseFacade) |
获取此 DbContext的已配置数据库名称。 |
IsCosmos(DatabaseFacade) |
|
GetInfrastructure<T>(IInfrastructure<T>) |
从使用 IInfrastructure<T>隐藏的属性中获取值。 此方法通常由数据库提供程序 (和其他扩展) 使用。 它通常不在应用程序代码中使用。 |
IsInMemory(DatabaseFacade) |
|
BeginTransaction(DatabaseFacade, IsolationLevel) |
使用给定 IsolationLevel启动新事务。 |
BeginTransactionAsync(DatabaseFacade, IsolationLevel, CancellationToken) |
使用给定 IsolationLevel的 异步启动新事务。 |
CloseConnection(DatabaseFacade) |
关闭基础 DbConnection。 |
CloseConnectionAsync(DatabaseFacade) |
关闭基础 DbConnection。 |
ExecuteSql(DatabaseFacade, FormattableString) |
对数据库执行给定的 SQL,并返回受影响的行数。 |
ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken) |
对数据库执行给定的 SQL,并返回受影响的行数。 |
ExecuteSqlCommand(DatabaseFacade, RawSqlString, IEnumerable<Object>) |
已过时。.
对数据库执行给定的 SQL,并返回受影响的行数。 请注意,此方法不会启动事务。 若要将此方法用于事务,请先调用 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction)。 请注意,此方法不使用当前 ExecutionStrategy ,因为 SQL 可能不是幂等的,也不会在事务中运行。 可以显式使用 ExecutionStrategy,如果 SQL 不是幂等的,请确保也使用事务。 与任何接受 SQL 的 API 一样,必须参数化任何用户输入,以防止 SQL 注入攻击。 可以在 SQL 查询字符串中包含参数占位符,然后将参数值作为其他参数提供。 提供的任何参数值将自动转换为 DbParameter。 还可以考虑使用 ExecuteSqlInterpolated 使用内插字符串语法来创建参数。 |
ExecuteSqlCommand(DatabaseFacade, RawSqlString, Object[]) |
已过时。.
对数据库执行给定的 SQL,并返回受影响的行数。 请注意,此方法不会启动事务。 若要将此方法用于事务,请先调用 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction)。 请注意,此方法不使用当前 ExecutionStrategy ,因为 SQL 可能不是幂等的,也不会在事务中运行。 可以显式使用 ExecutionStrategy,如果 SQL 不是幂等的,请确保也使用事务。
与任何接受 SQL 的 API 一样,必须参数化任何用户输入,以防止 SQL 注入攻击。 可以在 SQL 查询字符串中包含参数占位符,然后将参数值作为其他参数提供。 提供的任何参数值将自动转换为 DbParameter - |
ExecuteSqlCommand(DatabaseFacade, FormattableString) |
已过时。.
对数据库执行给定的 SQL,并返回受影响的行数。 请注意,此方法不会启动事务。 若要将此方法用于事务,请先调用 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction)。 请注意,此方法不使用当前 ExecutionStrategy ,因为 SQL 可能不是幂等的,也不会在事务中运行。 可以显式使用 ExecutionStrategy,如果 SQL 不是幂等的,请确保也使用事务。
与任何接受 SQL 的 API 一样,必须参数化任何用户输入,以防止 SQL 注入攻击。 可以在 SQL 查询字符串中包含参数占位符,然后将参数值作为其他参数提供。 提供的任何参数值将自动转换为 DbParameter - |
ExecuteSqlCommand(DatabaseFacade, String, Object[]) |
提供对上下文的数据库相关信息和操作的访问。 此类的实例通常是从 Database 中获取的,它不是在应用程序代码中直接构造的。 |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, IEnumerable<Object>, CancellationToken) |
已过时。.
对数据库执行给定的 SQL,并返回受影响的行数。 请注意,此方法不会启动事务。 若要将此方法用于事务,请先调用 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction)。 请注意,此方法不使用当前 ExecutionStrategy ,因为 SQL 可能不是幂等的,也不会在事务中运行。 可以显式使用 ExecutionStrategy,如果 SQL 不是幂等的,请确保也使用事务。 与任何接受 SQL 的 API 一样,必须参数化任何用户输入,以防止 SQL 注入攻击。 可以在 SQL 查询字符串中包含参数占位符,然后将参数值作为其他参数提供。 提供的任何参数值将自动转换为 DbParameter。 还可以考虑使用 ExecuteSqlInterpolated 使用内插字符串语法来创建参数。 |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, Object[]) |
已过时。.
对数据库执行给定的 SQL,并返回受影响的行数。 请注意,此方法不会启动事务。 若要将此方法用于事务,请先调用 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction)。 请注意,此方法不使用当前 ExecutionStrategy ,因为 SQL 可能不是幂等的,也不会在事务中运行。 可以显式使用 ExecutionStrategy,如果 SQL 不是幂等的,请确保也使用事务。
与任何接受 SQL 的 API 一样,必须参数化任何用户输入,以防止 SQL 注入攻击。 可以在 SQL 查询字符串中包含参数占位符,然后将参数值作为其他参数提供。 提供的任何参数值将自动转换为 DbParameter - |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, CancellationToken) |
已过时。.
对数据库执行给定的 SQL,并返回受影响的行数。 请注意,此方法不会启动事务。 若要将此方法用于事务,请首先调用 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction)。 请注意,此方法不使用当前 ExecutionStrategy ,因为 SQL 可能不是幂等的,并且不会在事务中运行。 可以显式使用 ExecutionStrategy,如果 SQL 不是幂等的,请确保也使用事务。
与任何接受 SQL 的 API 一样,必须参数化任何用户输入,以防止 SQL 注入攻击。 可以在 SQL 查询字符串中包含参数位置持有者,然后将参数值作为其他参数提供。 提供的任何参数值将自动转换为 DbParameter - |
ExecuteSqlCommandAsync(DatabaseFacade, FormattableString, CancellationToken) |
已过时。.
针对数据库执行给定的 SQL 并返回受影响的行数。 请注意,此方法不会启动事务。 若要将此方法用于事务,请首先调用 BeginTransaction(DatabaseFacade, IsolationLevel) 或 UseTransaction(DatabaseFacade, DbTransaction)。 请注意,此方法不使用当前 ExecutionStrategy ,因为 SQL 可能不是幂等的,并且不会在事务中运行。 可以显式使用 ExecutionStrategy,如果 SQL 不是幂等的,请确保也使用事务。
与任何接受 SQL 的 API 一样,必须参数化任何用户输入,以防止 SQL 注入攻击。 可以在 SQL 查询字符串中包含参数位置持有者,然后将参数值作为其他参数提供。 提供的任何参数值将自动转换为 DbParameter - |
ExecuteSqlCommandAsync(DatabaseFacade, String, CancellationToken, Object[]) |
提供对上下文的数据库相关信息和操作的访问。 此类的实例通常是从 Database 中获取的,它不是在应用程序代码中直接构造的。 |
ExecuteSqlInterpolated(DatabaseFacade, FormattableString) |
针对数据库执行给定的 SQL 并返回受影响的行数。 |
ExecuteSqlInterpolatedAsync(DatabaseFacade, FormattableString, CancellationToken) |
针对数据库执行给定的 SQL 并返回受影响的行数。 |
ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>) |
针对数据库执行给定的 SQL 并返回受影响的行数。 |
ExecuteSqlRaw(DatabaseFacade, String, Object[]) |
针对数据库执行给定的 SQL 并返回受影响的行数。 |
ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken) |
针对数据库执行给定的 SQL 并返回受影响的行数。 |
ExecuteSqlRawAsync(DatabaseFacade, String, Object[]) |
针对数据库执行给定的 SQL 并返回受影响的行数。 |
ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken) |
针对数据库执行给定的 SQL 并返回受影响的行数。 |
GenerateCreateScript(DatabaseFacade) |
生成一个脚本,用于为当前模型创建所有表。 |
GetAppliedMigrations(DatabaseFacade) |
获取已应用于目标数据库的所有迁移。 |
GetAppliedMigrationsAsync(DatabaseFacade, CancellationToken) |
异步获取已应用于目标数据库的所有迁移。 |
GetCommandTimeout(DatabaseFacade) |
返回为此 执行的 DbContext命令) 设置的超时 (以秒为单位。 |
GetConnectionString(DatabaseFacade) |
获取为此 DbContext配置的基础连接字符串。 |
GetDbConnection(DatabaseFacade) |
获取此 DbContext的基础 ADO.NETDbConnection。 |
GetMigrations(DatabaseFacade) |
获取在配置的迁移程序集中定义的所有迁移。 |
GetPendingMigrations(DatabaseFacade) |
获取程序集中定义但尚未应用于目标数据库的所有迁移。 |
GetPendingMigrationsAsync(DatabaseFacade, CancellationToken) |
异步获取程序集中定义但尚未应用于目标数据库的所有迁移。 |
HasPendingModelChanges(DatabaseFacade) |
|
IsRelational(DatabaseFacade) |
|
Migrate(DatabaseFacade) |
将上下文的任何挂起迁移应用到数据库。 如果数据库尚不存在,将创建该数据库。 |
MigrateAsync(DatabaseFacade, CancellationToken) |
将上下文的任何挂起迁移异步应用于数据库。 如果数据库尚不存在,将创建该数据库。 |
OpenConnection(DatabaseFacade) |
打开基础 DbConnection。 |
OpenConnectionAsync(DatabaseFacade, CancellationToken) |
打开基础 DbConnection。 |
SetCommandTimeout(DatabaseFacade, Nullable<Int32>) |
设置) 用于使用此 DbContext执行的命令的超时 ((以秒为单位)。 |
SetCommandTimeout(DatabaseFacade, TimeSpan) |
设置要用于使用此 DbContext执行的命令的超时。 |
SetConnectionString(DatabaseFacade, String) |
设置为此 DbContext配置的基础连接字符串。 |
SetDbConnection(DatabaseFacade, DbConnection) |
设置此 DbContext的基础 ADO.NETDbConnection。 |
SetDbConnection(DatabaseFacade, DbConnection, Boolean) |
设置此 DbContext的基础 ADO.NETDbConnection。 |
SqlQuery<TResult>(DatabaseFacade, FormattableString) |
基于原始 SQL 查询创建 LINQ 查询,该查询返回数据库提供程序本机支持的标量类型的结果集。 |
SqlQueryRaw<TResult>(DatabaseFacade, String, Object[]) |
基于原始 SQL 查询创建 LINQ 查询,该查询返回数据库提供程序本机支持的标量类型的结果集。 |
UseTransaction(DatabaseFacade, DbTransaction) |
DbTransaction设置 要由 上的DbContext数据库操作使用的 。 |
UseTransaction(DatabaseFacade, DbTransaction, Guid) |
DbTransaction设置 要由 上的DbContext数据库操作使用的 。 |
UseTransactionAsync(DatabaseFacade, DbTransaction, Guid, CancellationToken) |
DbTransaction设置 要由 上的DbContext数据库操作使用的 。 |
UseTransactionAsync(DatabaseFacade, DbTransaction, CancellationToken) |
DbTransaction设置 要由 上的DbContext数据库操作使用的 。 |
IsSqlite(DatabaseFacade) |
|
IsSqlServer(DatabaseFacade) |
|
EnlistTransaction(DatabaseFacade, Transaction) |
指定要用于数据库操作的现有 Transaction 值。 |
GetEnlistedTransaction(DatabaseFacade) |
返回当前登记的事务。 |