Partager via


DatabaseFacade Classe

Définition

Fournit l’accès aux informations et opérations relatives à la base de données pour un contexte. Les instances de cette classe sont généralement obtenues à partir de Database et elle n’est pas conçue pour être construite directement dans votre code d’application.

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
Héritage
DatabaseFacade
Implémente
IInfrastructure<IServiceProvider> Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependenciesAccessor IDatabaseFacadeDependenciesAccessor IResettableService

Constructeurs

DatabaseFacade(DbContext)

Initialise une nouvelle instance de la classe DatabaseFacade. Les instances de cette classe sont généralement obtenues à partir de Database et elle n’est pas conçue pour être construite directement dans votre code d’application.

Propriétés

AutoSavepointsEnabled

Indique si un point d’enregistrement de transaction sera créé automatiquement par SaveChanges() s’il est appelé après qu’une transaction a été démarrée manuellement avec BeginTransaction().

AutoTransactionBehavior

Obtient ou définit une valeur indiquant si une transaction sera créée automatiquement par SaveChanges() si ni « BeginTransaction » ni « UseTransaction » n’ont été appelés.

AutoTransactionsEnabled
Obsolète.
Obsolète.

Obtient ou définit une valeur indiquant si une transaction sera créée automatiquement si SaveChanges() aucune des méthodes « BeginTransaction » ou « UseTransaction » n’a été appelée.

CurrentTransaction

Obtient le actuel IDbContextTransaction utilisé par le contexte, ou null si aucune transaction n’est en cours d’utilisation.

ProviderName

Retourne le nom du fournisseur de base de données en cours d’utilisation. Le nom est généralement le nom de l’assembly du fournisseur. Il est généralement plus facile d’utiliser une méthode de sucre comme Microsoft.EntityFrameworkCore.SqlServerDatabaseFacadeExtensions.IsSqlServer au lieu d’appeler cette méthode directement.

Méthodes

BeginTransaction()

Démarre une nouvelle transaction.

BeginTransactionAsync(CancellationToken)

Démarre de manière asynchrone une nouvelle transaction.

CanConnect()

Détermine si la base de données est disponible et peut être connectée.

CanConnectAsync(CancellationToken)

Détermine si la base de données est disponible et peut être connectée.

CommitTransaction()

Applique les opérations en attente dans la transaction actuelle à la base de données.

CommitTransactionAsync(CancellationToken)

Applique les opérations en attente dans la transaction actuelle à la base de données.

CreateExecutionStrategy()

Crée un instance du configuréIExecutionStrategy.

EnsureCreated()

Garantit l’existence de la base de données pour le contexte.

EnsureCreatedAsync(CancellationToken)

Garantit l’existence de la base de données pour le contexte.

EnsureDeleted()

Garantit que la base de données pour le contexte n’existe pas. S’il n’existe pas, aucune action n’est prise. Si elle existe, la base de données est supprimée.

Avertissement : la base de données entière est supprimée et aucun effort n’est fait pour supprimer uniquement les objets de base de données utilisés par le modèle pour ce contexte.

EnsureDeletedAsync(CancellationToken)

Garantit de manière asynchrone que la base de données pour le contexte n’existe pas. S’il n’existe pas, aucune action n’est prise. Si elle existe, la base de données est supprimée.

Avertissement : la base de données entière est supprimée et aucun effort n’est fait pour supprimer uniquement les objets de base de données utilisés par le modèle pour ce contexte.

RollbackTransaction()

Ignore les opérations en attente dans la transaction actuelle.

RollbackTransactionAsync(CancellationToken)

Ignore les opérations en attente dans la transaction actuelle.

Implémentations d’interfaces explicites

IDatabaseFacadeDependenciesAccessor.Context

Il s’agit d’une API interne qui prend en charge l’infrastructure Entity Framework Core et qui n’est pas soumise aux mêmes normes de compatibilité que les API publiques. Il peut être modifié ou supprimé sans préavis dans n’importe quelle version. Vous devez uniquement l’utiliser directement dans votre code avec une extrême prudence et en sachant que cela peut entraîner des échecs d’application lors de la mise à jour vers une nouvelle version d’Entity Framework Core.

IDatabaseFacadeDependenciesAccessor.Dependencies

Il s’agit d’une API interne qui prend en charge l’infrastructure Entity Framework Core et qui n’est pas soumise aux mêmes normes de compatibilité que les API publiques. Il peut être modifié ou supprimé sans préavis dans n’importe quelle version. Vous devez uniquement l’utiliser directement dans votre code avec une extrême prudence et en sachant que cela peut entraîner des échecs d’application lors de la mise à jour vers une nouvelle version d’Entity Framework Core.

IInfrastructure<IServiceProvider>.Instance

Obtient l’étendue IServiceProvider utilisée pour résoudre les services.

Cette propriété est destinée à être utilisée par les méthodes d’extension qui doivent utiliser des services non directement exposés dans la surface d’API publique.

IResettableService.ResetState()

Réinitialise le service afin qu’il puisse être utilisé à partir du pool.

IResettableService.ResetStateAsync(CancellationToken)

Fournit l’accès aux informations et opérations relatives à la base de données pour un contexte. Les instances de cette classe sont généralement obtenues à partir de Database et elle n’est pas conçue pour être construite directement dans votre code d’application.

Méthodes d’extension

GetCosmosClient(DatabaseFacade)

Obtient le sous-jacent CosmosClient pour ce DbContext.

GetCosmosDatabaseId(DatabaseFacade)

Obtient le nom de la base de données configurée pour ce DbContext.

IsCosmos(DatabaseFacade)

Retourne true si le fournisseur de base de données actuellement utilisé est le fournisseur Cosmos.

GetInfrastructure<T>(IInfrastructure<T>)

Obtient la valeur d’une propriété masquée à l’aide IInfrastructure<T>de .

Cette méthode est généralement utilisée par les fournisseurs de base de données (et d’autres extensions). Il n’est généralement pas utilisé dans le code de l’application.

IsInMemory(DatabaseFacade)

Retourne true si le fournisseur de base de données actuellement utilisé est le fournisseur en mémoire.

BeginTransaction(DatabaseFacade, IsolationLevel)

Démarre une nouvelle transaction avec un donné IsolationLevel.

BeginTransactionAsync(DatabaseFacade, IsolationLevel, CancellationToken)

Démarre de façon asynchrone une nouvelle transaction avec un donné IsolationLevel.

CloseConnection(DatabaseFacade)

Ferme le sous-jacent DbConnection.

CloseConnectionAsync(DatabaseFacade)

Ferme le sous-jacent DbConnection.

ExecuteSql(DatabaseFacade, FormattableString)

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken)

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

ExecuteSqlCommand(DatabaseFacade, RawSqlString, IEnumerable<Object>)
Obsolète.

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

Notez que cette méthode ne démarre pas une transaction. Pour utiliser cette méthode avec une transaction, appelez BeginTransaction(DatabaseFacade, IsolationLevel) d’abord ou UseTransaction(DatabaseFacade, DbTransaction).

Notez que le actuel ExecutionStrategy n’est pas utilisé par cette méthode, car le sql n’est peut-être pas idempotent et ne s’exécute pas dans une transaction. Une stratégie d’exécution peut être utilisée explicitement, en veillant à utiliser également une transaction si le code SQL n’est pas idempotent.

Comme pour toute API qui accepte SQL, il est important de paramétrer toute entrée utilisateur pour vous protéger contre une attaque par injection de code SQL. Vous pouvez inclure des espaces réservés de paramètres dans la chaîne de requête SQL, puis fournir des valeurs de paramètre en tant qu’arguments supplémentaires. Toutes les valeurs de paramètre que vous fournissez sont automatiquement converties en DbParameter. Vous pouvez également envisager d’utiliser ExecuteSqlInterpolated pour utiliser la syntaxe de chaîne interpolée pour créer des paramètres.

ExecuteSqlCommand(DatabaseFacade, RawSqlString, Object[])
Obsolète.

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

Notez que cette méthode ne démarre pas une transaction. Pour utiliser cette méthode avec une transaction, appelez BeginTransaction(DatabaseFacade, IsolationLevel) d’abord ou UseTransaction(DatabaseFacade, DbTransaction).

Notez que le actuel ExecutionStrategy n’est pas utilisé par cette méthode, car le sql n’est peut-être pas idempotent et ne s’exécute pas dans une transaction. Une stratégie d’exécution peut être utilisée explicitement, en veillant à utiliser également une transaction si le code SQL n’est pas idempotent.

Comme pour toute API qui accepte SQL, il est important de paramétrer toute entrée utilisateur pour vous protéger contre une attaque par injection de code SQL. Vous pouvez inclure des espaces réservés de paramètres dans la chaîne de requête SQL, puis fournir des valeurs de paramètre en tant qu’arguments supplémentaires. Toutes les valeurs de paramètre que vous fournissez sont automatiquement converties en DbParameter - context.Database.ExecuteSqlCommand("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm). Vous pouvez également envisager d’utiliser ExecuteSqlInterpolated pour utiliser la syntaxe de chaîne interpolée pour créer des paramètres.

ExecuteSqlCommand(DatabaseFacade, FormattableString)
Obsolète.

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

Notez que cette méthode ne démarre pas une transaction. Pour utiliser cette méthode avec une transaction, appelez BeginTransaction(DatabaseFacade, IsolationLevel) d’abord ou UseTransaction(DatabaseFacade, DbTransaction).

Notez que le actuel ExecutionStrategy n’est pas utilisé par cette méthode, car le sql n’est peut-être pas idempotent et ne s’exécute pas dans une transaction. Une stratégie d’exécution peut être utilisée explicitement, en veillant à utiliser également une transaction si le code SQL n’est pas idempotent.

Comme pour toute API qui accepte SQL, il est important de paramétrer toute entrée utilisateur pour vous protéger contre une attaque par injection de code SQL. Vous pouvez inclure des espaces réservés de paramètres dans la chaîne de requête SQL, puis fournir des valeurs de paramètre en tant qu’arguments supplémentaires. Toutes les valeurs de paramètre que vous fournissez sont automatiquement converties en DbParameter - context.Database.ExecuteSqlCommand($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})").

ExecuteSqlCommand(DatabaseFacade, String, Object[])

Fournit l’accès aux informations et opérations relatives à la base de données pour un contexte. Les instances de cette classe sont généralement obtenues à partir de Database et elle n’est pas conçue pour être construite directement dans votre code d’application.

ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, IEnumerable<Object>, CancellationToken)
Obsolète.

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

Notez que cette méthode ne démarre pas une transaction. Pour utiliser cette méthode avec une transaction, appelez BeginTransaction(DatabaseFacade, IsolationLevel) d’abord ou UseTransaction(DatabaseFacade, DbTransaction).

Notez que le actuel ExecutionStrategy n’est pas utilisé par cette méthode, car le sql n’est peut-être pas idempotent et ne s’exécute pas dans une transaction. Une stratégie d’exécution peut être utilisée explicitement, en veillant à utiliser également une transaction si le code SQL n’est pas idempotent.

Comme pour toute API qui accepte SQL, il est important de paramétrer toute entrée utilisateur pour vous protéger contre une attaque par injection de code SQL. Vous pouvez inclure des espaces réservés de paramètres dans la chaîne de requête SQL, puis fournir des valeurs de paramètre en tant qu’arguments supplémentaires. Toutes les valeurs de paramètre que vous fournissez sont automatiquement converties en DbParameter. Vous pouvez également envisager d’utiliser ExecuteSqlInterpolated pour utiliser la syntaxe de chaîne interpolée pour créer des paramètres.

ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, Object[])
Obsolète.

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

Notez que cette méthode ne démarre pas une transaction. Pour utiliser cette méthode avec une transaction, appelez BeginTransaction(DatabaseFacade, IsolationLevel) d’abord ou UseTransaction(DatabaseFacade, DbTransaction).

Notez que le actuel ExecutionStrategy n’est pas utilisé par cette méthode, car le sql n’est peut-être pas idempotent et ne s’exécute pas dans une transaction. Une stratégie d’exécution peut être utilisée explicitement, en veillant à utiliser également une transaction si le code SQL n’est pas idempotent.

Comme pour toute API qui accepte SQL, il est important de paramétrer toute entrée utilisateur pour vous protéger contre une attaque par injection de code SQL. Vous pouvez inclure des espaces réservés de paramètres dans la chaîne de requête SQL, puis fournir des valeurs de paramètre en tant qu’arguments supplémentaires. Toutes les valeurs de paramètre que vous fournissez sont automatiquement converties en DbParameter - context.Database.ExecuteSqlCommandAsync("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm). Vous pouvez également envisager d’utiliser ExecuteSqlInterpolated pour utiliser la syntaxe de chaîne interpolée pour créer des paramètres.

ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, CancellationToken)
Obsolète.

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

Notez que cette méthode ne démarre pas une transaction. Pour utiliser cette méthode avec une transaction, appelez BeginTransaction(DatabaseFacade, IsolationLevel) d’abord ou UseTransaction(DatabaseFacade, DbTransaction).

Notez que le actuel ExecutionStrategy n’est pas utilisé par cette méthode, car le sql n’est peut-être pas idempotent et ne s’exécute pas dans une transaction. Une stratégie d’exécution peut être utilisée explicitement, en veillant à utiliser également une transaction si le code SQL n’est pas idempotent.

Comme pour toute API qui accepte SQL, il est important de paramétrer toute entrée utilisateur pour vous protéger contre une attaque par injection de code SQL. Vous pouvez inclure des espaces réservés de paramètres dans la chaîne de requête SQL, puis fournir des valeurs de paramètre en tant qu’arguments supplémentaires. Toutes les valeurs de paramètre que vous fournissez sont automatiquement converties en DbParameter - context.Database.ExecuteSqlCommandAsync("SELECT * FROM [dbo].[SearchBlogs]({0})", userSuppliedSearchTerm).

ExecuteSqlCommandAsync(DatabaseFacade, FormattableString, CancellationToken)
Obsolète.

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

Notez que cette méthode ne démarre pas une transaction. Pour utiliser cette méthode avec une transaction, appelez BeginTransaction(DatabaseFacade, IsolationLevel) d’abord ou UseTransaction(DatabaseFacade, DbTransaction).

Notez que le actuel ExecutionStrategy n’est pas utilisé par cette méthode, car le sql n’est peut-être pas idempotent et ne s’exécute pas dans une transaction. Une stratégie d’exécution peut être utilisée explicitement, en veillant à utiliser également une transaction si le code SQL n’est pas idempotent.

Comme pour toute API qui accepte SQL, il est important de paramétrer toute entrée utilisateur pour vous protéger contre une attaque par injection de code SQL. Vous pouvez inclure des espaces réservés de paramètres dans la chaîne de requête SQL, puis fournir des valeurs de paramètre en tant qu’arguments supplémentaires. Toutes les valeurs de paramètre que vous fournissez sont automatiquement converties en DbParameter - context.Database.ExecuteSqlCommandAsync($"SELECT * FROM [dbo].[SearchBlogs]({userSuppliedSearchTerm})").

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

Fournit l’accès aux informations et opérations relatives à la base de données pour un contexte. Les instances de cette classe sont généralement obtenues à partir de Database et elle n’est pas conçue pour être construite directement dans votre code d’application.

ExecuteSqlInterpolated(DatabaseFacade, FormattableString)

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

ExecuteSqlInterpolatedAsync(DatabaseFacade, FormattableString, CancellationToken)

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>)

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

ExecuteSqlRaw(DatabaseFacade, String, Object[])

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

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

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

ExecuteSqlRawAsync(DatabaseFacade, String, Object[])

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken)

Exécute le code SQL donné sur la base de données et retourne le nombre de lignes affectées.

GenerateCreateScript(DatabaseFacade)

Génère un script pour créer toutes les tables pour le modèle actuel.

GetAppliedMigrations(DatabaseFacade)

Obtient toutes les migrations qui ont été appliquées à la base de données cible.

GetAppliedMigrationsAsync(DatabaseFacade, CancellationToken)

Obtient de façon asynchrone toutes les migrations qui ont été appliquées à la base de données cible.

GetCommandTimeout(DatabaseFacade)

Retourne le délai d’expiration (en secondes) défini pour les commandes exécutées avec ce DbContext.

GetConnectionString(DatabaseFacade)

Obtient le chaîne de connexion sous-jacent configuré pour ce DbContext.

GetDbConnection(DatabaseFacade)

Obtient le ADO.NET DbConnection sous-jacent pour ce DbContext.

GetMigrations(DatabaseFacade)

Obtient toutes les migrations définies dans l’assembly de migrations configuré.

GetPendingMigrations(DatabaseFacade)

Obtient toutes les migrations définies dans l’assembly mais qui n’ont pas été appliquées à la base de données cible.

GetPendingMigrationsAsync(DatabaseFacade, CancellationToken)

Obtient de manière asynchrone toutes les migrations qui sont définies dans l’assembly mais qui n’ont pas été appliquées à la base de données cible.

HasPendingModelChanges(DatabaseFacade)

Retourne true si le modèle a des modifications en attente à appliquer.

IsRelational(DatabaseFacade)

Retourne true si le fournisseur de base de données actuellement utilisé est une base de données relationnelle.

Migrate(DatabaseFacade)

Applique toutes les migrations en attente pour le contexte à la base de données. Crée la base de données si elle n’existe pas déjà.

MigrateAsync(DatabaseFacade, CancellationToken)

Applique de manière asynchrone toutes les migrations en attente pour le contexte à la base de données. Crée la base de données si elle n’existe pas déjà.

OpenConnection(DatabaseFacade)

Ouvre le sous-jacent DbConnection.

OpenConnectionAsync(DatabaseFacade, CancellationToken)

Ouvre le sous-jacent DbConnection.

SetCommandTimeout(DatabaseFacade, Nullable<Int32>)

Définit le délai d’expiration (en secondes) à utiliser pour les commandes exécutées avec ce DbContext.

SetCommandTimeout(DatabaseFacade, TimeSpan)

Définit le délai d’expiration à utiliser pour les commandes exécutées avec ce DbContext.

SetConnectionString(DatabaseFacade, String)

Définit le chaîne de connexion sous-jacent configuré pour ce DbContext.

SetDbConnection(DatabaseFacade, DbConnection, Boolean)

Définit le ADO.NET DbConnection sous-jacent pour ce DbContext.

SetDbConnection(DatabaseFacade, DbConnection)

Définit le ADO.NET DbConnection sous-jacent pour ce DbContext.

SqlQuery<TResult>(DatabaseFacade, FormattableString)

Crée une requête LINQ basée sur une requête SQL brute, qui retourne un jeu de résultats d’un type scalaire pris en charge en mode natif par le fournisseur de base de données.

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

Crée une requête LINQ basée sur une requête SQL brute, qui retourne un jeu de résultats d’un type scalaire pris en charge en mode natif par le fournisseur de base de données.

UseTransaction(DatabaseFacade, DbTransaction, Guid)

Définit le à utiliser par les DbTransaction opérations de base de données sur le DbContext.

UseTransaction(DatabaseFacade, DbTransaction)

Définit le à utiliser par les DbTransaction opérations de base de données sur le DbContext.

UseTransactionAsync(DatabaseFacade, DbTransaction, Guid, CancellationToken)

Définit le à utiliser par les DbTransaction opérations de base de données sur le DbContext.

UseTransactionAsync(DatabaseFacade, DbTransaction, CancellationToken)

Définit le à utiliser par les DbTransaction opérations de base de données sur le DbContext.

IsSqlite(DatabaseFacade)

Retourne true si le fournisseur de base de données actuellement utilisé est le fournisseur SQLite.

IsSqlServer(DatabaseFacade)

Retourne true si le fournisseur de base de données actuellement utilisé est le fournisseur SQL Server.

EnlistTransaction(DatabaseFacade, Transaction)

Spécifie un existant Transaction à utiliser pour les opérations de base de données.

GetEnlistedTransaction(DatabaseFacade)

Retourne la transaction actuellement inscrite.

S’applique à