Compartir a través de


DatabaseFacade Clase

Definición

Proporciona acceso a la información y las operaciones relacionadas con la base de datos para un contexto. Las instancias de esta clase se obtienen normalmente de Database y no están diseñadas para construirse directamente en el código de la aplicación.

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
Herencia
DatabaseFacade
Implementaciones
IInfrastructure<IServiceProvider> Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependenciesAccessor IDatabaseFacadeDependenciesAccessor IResettableService

Constructores

DatabaseFacade(DbContext)

Inicializa una nueva instancia de la clase DatabaseFacade. Las instancias de esta clase se obtienen normalmente de Database y no están diseñadas para construirse directamente en el código de la aplicación.

Propiedades

AutoSavepointsEnabled

Si se llama automáticamente SaveChanges() a un punto de retorno de transacción, si se llama a una transacción después de iniciar manualmente una transacción con BeginTransaction().

AutoTransactionBehavior

Obtiene o establece un valor que indica si se creará automáticamente SaveChanges() una transacción si no se ha llamado a "BeginTransaction" ni a "UseTransaction".

AutoTransactionsEnabled
Obsoletos.
Obsoletos.

Obtiene o establece un valor que indica si se creará automáticamente SaveChanges() una transacción si no se ha llamado a ninguno de los métodos "BeginTransaction" o "UseTransaction".

CurrentTransaction

Obtiene el objeto actual IDbContextTransaction que usa el contexto o null si no hay ninguna transacción en uso.

ProviderName

Devuelve el nombre del proveedor de base de datos actualmente en uso. El nombre suele ser el nombre del ensamblado del proveedor. Normalmente es más fácil usar un método de azúcar, como Microsoft.EntityFrameworkCore.SqlServerDatabaseFacadeExtensions.IsSqlServer en lugar de llamar directamente a este método.

Métodos

BeginTransaction()

Inicia una nueva transacción.

BeginTransactionAsync(CancellationToken)

Inicia de forma asincrónica una nueva transacción.

CanConnect()

Determina si la base de datos está disponible o no y se puede conectar a ella.

CanConnectAsync(CancellationToken)

Determina si la base de datos está disponible o no y se puede conectar a ella.

CommitTransaction()

Aplica las operaciones pendientes de la transacción actual a la base de datos.

CommitTransactionAsync(CancellationToken)

Aplica las operaciones pendientes de la transacción actual a la base de datos.

CreateExecutionStrategy()

Crea una instancia de la clase configurada IExecutionStrategy.

EnsureCreated()

Garantiza que existe la base de datos para el contexto.

EnsureCreatedAsync(CancellationToken)

Garantiza que existe la base de datos para el contexto.

EnsureDeleted()

Garantiza que la base de datos del contexto no existe. Si no existe, no se realiza ninguna acción. Si existe, se elimina la base de datos.

Advertencia: se elimina toda la base de datos y no se realiza ningún esfuerzo para quitar solo los objetos de base de datos que usa el modelo para este contexto.

EnsureDeletedAsync(CancellationToken)

Garantiza de forma asincrónica que la base de datos del contexto no existe. Si no existe, no se realiza ninguna acción. Si existe, se elimina la base de datos.

Advertencia: se elimina toda la base de datos y no se realiza ningún esfuerzo para quitar solo los objetos de base de datos que usa el modelo para este contexto.

RollbackTransaction()

Descarta las operaciones pendientes en la transacción actual.

RollbackTransactionAsync(CancellationToken)

Descarta las operaciones pendientes en la transacción actual.

Implementaciones de interfaz explícitas

IDatabaseFacadeDependenciesAccessor.Context

Se trata de una API interna que admite la infraestructura de Entity Framework Core y no está sujeta a los mismos estándares de compatibilidad que las API públicas. Se puede cambiar o quitar sin previo aviso en ninguna versión. Solo debe usarlo directamente en el código con extrema precaución y saber que hacerlo puede dar lugar a errores de aplicación al actualizar a una nueva versión de Entity Framework Core.

IDatabaseFacadeDependenciesAccessor.Dependencies

Se trata de una API interna que admite la infraestructura de Entity Framework Core y no está sujeta a los mismos estándares de compatibilidad que las API públicas. Se puede cambiar o quitar sin previo aviso en ninguna versión. Solo debe usarlo directamente en el código con extrema precaución y saber que hacerlo puede dar lugar a errores de aplicación al actualizar a una nueva versión de Entity Framework Core.

IInfrastructure<IServiceProvider>.Instance

Obtiene el ámbito que IServiceProvider se usa para resolver los servicios.

Esta propiedad está pensada para su uso por métodos de extensión que necesitan hacer uso de servicios que no se exponen directamente en la superficie de la API pública.

IResettableService.ResetState()

Restablece el servicio para que se pueda usar desde el grupo.

IResettableService.ResetStateAsync(CancellationToken)

Proporciona acceso a la información y las operaciones relacionadas con la base de datos para un contexto. Las instancias de esta clase se obtienen normalmente de Database y no están diseñadas para construirse directamente en el código de la aplicación.

Métodos de extensión

GetCosmosClient(DatabaseFacade)

Obtiene el objeto subyacente CosmosClient para este DbContextobjeto .

GetCosmosDatabaseId(DatabaseFacade)

Obtiene el nombre de la base de datos configurada para este DbContextobjeto .

IsCosmos(DatabaseFacade)

Devuelve true si el proveedor de base de datos que está actualmente en uso es el proveedor de Cosmos.

GetInfrastructure<T>(IInfrastructure<T>)

Obtiene el valor de una propiedad que se oculta mediante IInfrastructure<T>.

Normalmente, los proveedores de bases de datos usan este método (y otras extensiones). Por lo general, no se usa en el código de aplicación.

IsInMemory(DatabaseFacade)

Devuelve true si el proveedor de base de datos que está actualmente en uso es el proveedor en memoria.

BeginTransaction(DatabaseFacade, IsolationLevel)

Inicia una nueva transacción con un determinado IsolationLevel.

BeginTransactionAsync(DatabaseFacade, IsolationLevel, CancellationToken)

Inicia de forma asincrónica una nueva transacción con un determinado IsolationLevel.

CloseConnection(DatabaseFacade)

Cierra el objeto subyacente DbConnection.

CloseConnectionAsync(DatabaseFacade)

Cierra el objeto subyacente DbConnection.

ExecuteSql(DatabaseFacade, FormattableString)

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken)

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

ExecuteSqlCommand(DatabaseFacade, RawSqlString, IEnumerable<Object>)
Obsoletos.

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

Tenga en cuenta que este método no inicia una transacción. Para usar este método con una transacción, llame primero a BeginTransaction(DatabaseFacade, IsolationLevel) o UseTransaction(DatabaseFacade, DbTransaction).

Tenga en cuenta que este método no usa el actual ExecutionStrategy , ya que es posible que SQL no sea idempotente y no se ejecute en una transacción. ExecutionStrategy se puede usar explícitamente, asegurándose de usar también una transacción si SQL no es idempotente.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en un DbParameter. También puede considerar el uso de ExecuteSqlInterpolated para usar la sintaxis de cadena interpolada para crear parámetros.

ExecuteSqlCommand(DatabaseFacade, RawSqlString, Object[])
Obsoletos.

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

Tenga en cuenta que este método no inicia una transacción. Para usar este método con una transacción, llame primero a BeginTransaction(DatabaseFacade, IsolationLevel) o UseTransaction(DatabaseFacade, DbTransaction).

Tenga en cuenta que este método no usa el actual ExecutionStrategy , ya que es posible que SQL no sea idempotente y no se ejecute en una transacción. ExecutionStrategy se puede usar explícitamente, asegurándose de usar también una transacción si SQL no es idempotente.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en dbParameter: context.Database.ExecuteSqlCommand("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm). También puede considerar el uso de ExecuteSqlInterpolated para usar la sintaxis de cadena interpolada para crear parámetros.

ExecuteSqlCommand(DatabaseFacade, FormattableString)
Obsoletos.

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

Tenga en cuenta que este método no inicia una transacción. Para usar este método con una transacción, llame primero a BeginTransaction(DatabaseFacade, IsolationLevel) o UseTransaction(DatabaseFacade, DbTransaction).

Tenga en cuenta que este método no usa el actual ExecutionStrategy , ya que es posible que SQL no sea idempotente y no se ejecute en una transacción. ExecutionStrategy se puede usar explícitamente, asegurándose de usar también una transacción si SQL no es idempotente.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en dbParameter: context.Database.ExecuteSqlCommand($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})").

ExecuteSqlCommand(DatabaseFacade, String, Object[])

Proporciona acceso a la información y las operaciones relacionadas con la base de datos para un contexto. Las instancias de esta clase se obtienen normalmente de Database y no están diseñadas para construirse directamente en el código de la aplicación.

ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, IEnumerable<Object>, CancellationToken)
Obsoletos.

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

Tenga en cuenta que este método no inicia una transacción. Para usar este método con una transacción, llame primero a BeginTransaction(DatabaseFacade, IsolationLevel) o UseTransaction(DatabaseFacade, DbTransaction).

Tenga en cuenta que este método no usa el actual ExecutionStrategy , ya que es posible que SQL no sea idempotente y no se ejecute en una transacción. ExecutionStrategy se puede usar explícitamente, asegurándose de usar también una transacción si SQL no es idempotente.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en un DbParameter. También puede considerar el uso de ExecuteSqlInterpolated para usar la sintaxis de cadena interpolada para crear parámetros.

ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, Object[])
Obsoletos.

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

Tenga en cuenta que este método no inicia una transacción. Para usar este método con una transacción, llame primero a BeginTransaction(DatabaseFacade, IsolationLevel) o UseTransaction(DatabaseFacade, DbTransaction).

Tenga en cuenta que este método no usa el actual ExecutionStrategy , ya que es posible que SQL no sea idempotente y no se ejecute en una transacción. ExecutionStrategy se puede usar explícitamente, asegurándose de usar también una transacción si SQL no es idempotente.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en dbParameter: context.Database.ExecuteSqlCommandAsync("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm). También puede considerar el uso de ExecuteSqlInterpolated para usar la sintaxis de cadena interpolada para crear parámetros.

ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, CancellationToken)
Obsoletos.

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

Tenga en cuenta que este método no inicia una transacción. Para usar este método con una transacción, llame primero a BeginTransaction(DatabaseFacade, IsolationLevel) o UseTransaction(DatabaseFacade, DbTransaction).

Tenga en cuenta que este método no usa el actual ExecutionStrategy , ya que es posible que SQL no sea idempotente y no se ejecute en una transacción. ExecutionStrategy se puede usar explícitamente, asegurándose de usar también una transacción si SQL no es idempotente.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en dbParameter: context.Database.ExecuteSqlCommandAsync("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm).

ExecuteSqlCommandAsync(DatabaseFacade, FormattableString, CancellationToken)
Obsoletos.

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

Tenga en cuenta que este método no inicia una transacción. Para usar este método con una transacción, llame primero a BeginTransaction(DatabaseFacade, IsolationLevel) o UseTransaction(DatabaseFacade, DbTransaction).

Tenga en cuenta que este método no usa el actual ExecutionStrategy , ya que es posible que SQL no sea idempotente y no se ejecute en una transacción. ExecutionStrategy se puede usar explícitamente, asegurándose de usar también una transacción si SQL no es idempotente.

Al igual que con cualquier API que acepte SQL, es importante parametrizar cualquier entrada de usuario para protegerse frente a un ataque por inyección de CÓDIGO SQL. Puede incluir marcadores de posición de parámetros en la cadena de consulta SQL y, a continuación, proporcionar valores de parámetro como argumentos adicionales. Los valores de parámetro que proporcione se convertirán automáticamente en dbParameter: context.Database.ExecuteSqlCommandAsync($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})").

ExecuteSqlCommandAsync(DatabaseFacade, String, CancellationToken, Object[])

Proporciona acceso a la información y las operaciones relacionadas con la base de datos para un contexto. Las instancias de esta clase se obtienen normalmente de Database y no están diseñadas para construirse directamente en el código de la aplicación.

ExecuteSqlInterpolated(DatabaseFacade, FormattableString)

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

ExecuteSqlInterpolatedAsync(DatabaseFacade, FormattableString, CancellationToken)

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>)

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

ExecuteSqlRaw(DatabaseFacade, String, Object[])

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken)

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

ExecuteSqlRawAsync(DatabaseFacade, String, Object[])

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken)

Ejecuta el sql especificado en la base de datos y devuelve el número de filas afectadas.

GenerateCreateScript(DatabaseFacade)

Genera un script para crear todas las tablas para el modelo actual.

GetAppliedMigrations(DatabaseFacade)

Obtiene todas las migraciones que se han aplicado a la base de datos de destino.

GetAppliedMigrationsAsync(DatabaseFacade, CancellationToken)

Obtiene de forma asincrónica todas las migraciones que se han aplicado a la base de datos de destino.

GetCommandTimeout(DatabaseFacade)

Devuelve el tiempo de espera (en segundos) establecido para los comandos ejecutados con este DbContext.

GetConnectionString(DatabaseFacade)

Obtiene el cadena de conexión subyacente configurado para este DbContextobjeto .

GetDbConnection(DatabaseFacade)

Obtiene el ADO.NET DbConnection subyacente de este DbContextobjeto .

GetMigrations(DatabaseFacade)

Obtiene todas las migraciones definidas en el ensamblado de migraciones configuradas.

GetPendingMigrations(DatabaseFacade)

Obtiene todas las migraciones definidas en el ensamblado, pero que no se han aplicado a la base de datos de destino.

GetPendingMigrationsAsync(DatabaseFacade, CancellationToken)

Obtiene de forma asincrónica todas las migraciones definidas en el ensamblado, pero que no se han aplicado a la base de datos de destino.

HasPendingModelChanges(DatabaseFacade)

Devuelve true si el modelo tiene cambios pendientes que se van a aplicar.

IsRelational(DatabaseFacade)

Devuelve true si el proveedor de base de datos que está actualmente en uso es una base de datos relacional.

Migrate(DatabaseFacade)

Aplica las migraciones pendientes para el contexto a la base de datos. Creará la base de datos si aún no existe.

MigrateAsync(DatabaseFacade, CancellationToken)

Aplica de forma asincrónica las migraciones pendientes para el contexto a la base de datos. Creará la base de datos si aún no existe.

OpenConnection(DatabaseFacade)

Abre el objeto subyacente DbConnection.

OpenConnectionAsync(DatabaseFacade, CancellationToken)

Abre el objeto subyacente DbConnection.

SetCommandTimeout(DatabaseFacade, Nullable<Int32>)

Establece el tiempo de espera (en segundos) que se va a usar para los comandos ejecutados con este DbContext.

SetCommandTimeout(DatabaseFacade, TimeSpan)

Establece el tiempo de espera que se va a usar para los comandos ejecutados con este DbContext.

SetConnectionString(DatabaseFacade, String)

Establece el cadena de conexión subyacente configurado para este DbContextobjeto .

SetDbConnection(DatabaseFacade, DbConnection, Boolean)

Establece el ADO.NET DbConnection subyacente para este DbContextobjeto .

SetDbConnection(DatabaseFacade, DbConnection)

Establece el ADO.NET DbConnection subyacente para este DbContextobjeto .

SqlQuery<TResult>(DatabaseFacade, FormattableString)

Crea una consulta LINQ basada en una consulta SQL sin procesar, que devuelve un conjunto de resultados de un tipo escalar admitido de forma nativa por el proveedor de base de datos.

SqlQueryRaw<TResult>(DatabaseFacade, String, Object[])

Crea una consulta LINQ basada en una consulta SQL sin procesar, que devuelve un conjunto de resultados de un tipo escalar admitido de forma nativa por el proveedor de base de datos.

UseTransaction(DatabaseFacade, DbTransaction, Guid)

Establece el objeto DbTransaction que se va a usar en las operaciones de base de datos en .DbContext

UseTransaction(DatabaseFacade, DbTransaction)

Establece el objeto DbTransaction que se va a usar en las operaciones de base de datos en .DbContext

UseTransactionAsync(DatabaseFacade, DbTransaction, Guid, CancellationToken)

Establece el objeto DbTransaction que se va a usar en las operaciones de base de datos en .DbContext

UseTransactionAsync(DatabaseFacade, DbTransaction, CancellationToken)

Establece el objeto DbTransaction que se va a usar en las operaciones de base de datos en .DbContext

IsSqlite(DatabaseFacade)

Devuelve true si el proveedor de base de datos que está actualmente en uso es el proveedor de SQLite.

IsSqlServer(DatabaseFacade)

Devuelve true si el proveedor de base de datos que está actualmente en uso es el proveedor de SQL Server.

EnlistTransaction(DatabaseFacade, Transaction)

Especifica un existente Transaction que se va a usar para las operaciones de base de datos.

GetEnlistedTransaction(DatabaseFacade)

Devuelve la transacción actualmente enlistada.

Se aplica a