DatabaseFacade Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 |
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 |
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 - |
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 - |
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 - |
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 - |
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 - |
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 |
IsRelational(DatabaseFacade) |
Retourne |
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 |
IsSqlServer(DatabaseFacade) |
Retourne |
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. |