DatabaseFacade Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce l'accesso alle informazioni e alle operazioni correlate al database per un contesto. Le istanze di questa classe vengono in genere ottenute da Database e non sono progettate per essere costruite direttamente nel codice dell'applicazione.
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>
[System.Runtime.CompilerServices.Nullable(0)]
public class DatabaseFacade : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<IServiceProvider>, Microsoft.EntityFrameworkCore.Infrastructure.IResettableService, Microsoft.EntityFrameworkCore.Storage.IDatabaseFacadeDependenciesAccessor
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>
[<System.Runtime.CompilerServices.Nullable(0)>]
type DatabaseFacade = class
interface IInfrastructure<IServiceProvider>
interface IDatabaseFacadeDependenciesAccessor
interface IResettableService
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), IResettableService
Public Class DatabaseFacade
Implements IDatabaseFacadeDependenciesAccessor, IInfrastructure(Of IServiceProvider)
- Ereditarietà
-
DatabaseFacade
- Attributi
- Implementazioni
-
IInfrastructure<IServiceProvider> IResettableService IDatabaseFacadeDependenciesAccessor Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependenciesAccessor
Costruttori
| Nome | Descrizione |
|---|---|
| DatabaseFacade(DbContext) |
Inizializza una nuova istanza della classe DatabaseFacade. Le istanze di questa classe vengono in genere ottenute da Database e non sono progettate per essere costruite direttamente nel codice dell'applicazione. |
Proprietà
| Nome | Descrizione |
|---|---|
| AutoSavepointsEnabled |
Indica se un punto di salvataggio della transazione verrà creato automaticamente se SaveChanges() viene chiamato dopo l'avvio manuale di una transazione con BeginTransaction(). |
| AutoTransactionBehavior |
Ottiene o imposta un valore che indica se una transazione verrà creata automaticamente da SaveChanges() se non è stato chiamato 'BeginTransaction' né 'UseTransaction'. |
| AutoTransactionsEnabled |
Obsoleti.
Obsoleti.
Ottiene o imposta un valore che indica se una transazione verrà creata automaticamente da SaveChanges() se non è stato chiamato nessuno dei metodi 'BeginTransaction' o 'UseTransaction'. |
| CurrentTransaction |
Ottiene l'oggetto corrente IDbContextTransaction utilizzato dal contesto o Null se non è in uso alcuna transazione. |
| ProviderName |
Restituisce il nome del provider di database attualmente in uso. Il nome è in genere il nome dell'assembly del provider. In genere è più facile usare un metodo di zucchero, ad Microsoft.EntityFrameworkCore.SqlServerDatabaseFacadeExtensions.IsSqlServer esempio anziché chiamare direttamente questo metodo. |
Metodi
| Nome | Descrizione |
|---|---|
| BeginTransaction() |
Avvia una nuova transazione. |
| BeginTransactionAsync(CancellationToken) |
Avvia in modo asincrono una nuova transazione. |
| CanConnect() |
Determina se il database è disponibile e può essere connesso. |
| CanConnectAsync(CancellationToken) |
Determina se il database è disponibile e può essere connesso. |
| CommitTransaction() |
Applica le operazioni in sospeso nella transazione corrente al database. |
| CommitTransactionAsync(CancellationToken) |
Applica le operazioni in sospeso nella transazione corrente al database. |
| CreateExecutionStrategy() |
Crea un'istanza dell'oggetto configurato IExecutionStrategy. |
| EnsureCreated() |
Assicura che il database per il contesto esista. |
| EnsureCreatedAsync(CancellationToken) |
Assicura che il database per il contesto esista. |
| EnsureDeleted() |
Assicura che il database per il contesto non esista. Se non esiste, non viene eseguita alcuna azione. Se esiste, il database viene eliminato. Avviso: l'intero database viene eliminato e non viene eseguito alcun tentativo di rimuovere solo gli oggetti di database utilizzati dal modello per questo contesto. |
| EnsureDeletedAsync(CancellationToken) |
Garantisce in modo asincrono che il database per il contesto non esista. Se non esiste, non viene eseguita alcuna azione. Se esiste, il database viene eliminato. Avviso: l'intero database viene eliminato e non viene eseguito alcun tentativo di rimuovere solo gli oggetti di database utilizzati dal modello per questo contesto. |
| RollbackTransaction() |
Elimina le operazioni in sospeso nella transazione corrente. |
| RollbackTransactionAsync(CancellationToken) |
Elimina le operazioni in sospeso nella transazione corrente. |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IDatabaseFacadeDependenciesAccessor.Context |
Si tratta di un'API interna che supporta l'infrastruttura Entity Framework Core e non è soggetta agli stessi standard di compatibilità delle API pubbliche. Può essere modificato o rimosso senza preavviso in alcuna versione. È consigliabile usarlo direttamente nel codice con estrema cautela e sapere che questa operazione può causare errori dell'applicazione durante l'aggiornamento a una nuova versione Entity Framework Core. |
| IDatabaseFacadeDependenciesAccessor.Dependencies |
Si tratta di un'API interna che supporta l'infrastruttura Entity Framework Core e non è soggetta agli stessi standard di compatibilità delle API pubbliche. Può essere modificato o rimosso senza preavviso in alcuna versione. È consigliabile usarlo direttamente nel codice con estrema cautela e sapere che questa operazione può causare errori dell'applicazione durante l'aggiornamento a una nuova versione Entity Framework Core. |
| IInfrastructure<IServiceProvider>.Instance |
Ottiene l'ambito IServiceProvider utilizzato per risolvere i servizi. Questa proprietà è destinata all'uso da parte di metodi di estensione che devono usare i servizi non esposti direttamente nella superficie api pubblica. |
| IResettableService.ResetState() |
Reimposta il servizio in modo che possa essere usato dal pool. |
| IResettableService.ResetStateAsync(CancellationToken) |
Fornisce l'accesso alle informazioni e alle operazioni correlate al database per un contesto. Le istanze di questa classe vengono in genere ottenute da Database e non sono progettate per essere costruite direttamente nel codice dell'applicazione. |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| AppendSessionToken(DatabaseFacade, String) |
Aggiunge il token di sessione composito per il contenitore predefinito per questo DbContextoggetto . |
| AppendSessionTokens(DatabaseFacade, IReadOnlyDictionary<String,String>) |
Aggiunge il token di sessioni composite per DbContext ogni contenitore con i token specificati in |
| BeginTransaction(DatabaseFacade, IsolationLevel) |
Avvia una nuova transazione con un determinato IsolationLeveloggetto . |
| BeginTransactionAsync(DatabaseFacade, IsolationLevel, CancellationToken) |
Avvia in modo asincrono una nuova transazione con un determinato IsolationLeveloggetto . |
| CloseConnection(DatabaseFacade) |
Chiude l'oggetto sottostante DbConnection. |
| CloseConnectionAsync(DatabaseFacade) |
Chiude l'oggetto sottostante DbConnection. |
| EnlistTransaction(DatabaseFacade, Transaction) |
Specifica un oggetto esistente Transaction da utilizzare per le operazioni di database. |
| ExecuteSql(DatabaseFacade, FormattableString) |
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. |
| ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken) |
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. |
| ExecuteSqlCommand(DatabaseFacade, FormattableString) |
Obsoleti.
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, chiamare BeginTransaction(DatabaseFacade, IsolationLevel) prima o UseTransaction(DatabaseFacade, DbTransaction). Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo perché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. È possibile usare un oggetto ExecutionStrategy in modo esplicito, assicurandosi di usare anche una transazione se SQL non è idempotente.
Come per qualsiasi API che accetta SQL, è importante parametrizzare qualsiasi input utente da proteggere da un attacco SQL injection. È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi specificare i valori dei parametri come argomenti aggiuntivi. Tutti i valori dei parametri specificati verranno convertiti automaticamente in dbParameter - |
| ExecuteSqlCommand(DatabaseFacade, RawSqlString, IEnumerable<Object>) |
Obsoleti.
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, chiamare BeginTransaction(DatabaseFacade, IsolationLevel) prima o UseTransaction(DatabaseFacade, DbTransaction). Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo perché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. È possibile usare un oggetto ExecutionStrategy in modo esplicito, assicurandosi di usare anche una transazione se SQL non è idempotente. Come per qualsiasi API che accetta SQL, è importante parametrizzare qualsiasi input utente da proteggere da un attacco SQL injection. È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi specificare i valori dei parametri come argomenti aggiuntivi. Tutti i valori dei parametri specificati verranno convertiti automaticamente in dbParameter. È anche possibile prendere in considerazione l'uso di ExecuteSqlInterpolated per usare la sintassi di stringa interpolata per creare parametri. |
| ExecuteSqlCommand(DatabaseFacade, RawSqlString, Object[]) |
Obsoleti.
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, chiamare BeginTransaction(DatabaseFacade, IsolationLevel) prima o UseTransaction(DatabaseFacade, DbTransaction). Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo perché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. È possibile usare un oggetto ExecutionStrategy in modo esplicito, assicurandosi di usare anche una transazione se SQL non è idempotente.
Come per qualsiasi API che accetta SQL, è importante parametrizzare qualsiasi input utente da proteggere da un attacco SQL injection. È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi specificare i valori dei parametri come argomenti aggiuntivi. Tutti i valori dei parametri specificati verranno convertiti automaticamente in dbParameter - |
| ExecuteSqlCommand(DatabaseFacade, String, Object[]) |
Fornisce l'accesso alle informazioni e alle operazioni correlate al database per un contesto. Le istanze di questa classe vengono in genere ottenute da Database e non sono progettate per essere costruite direttamente nel codice dell'applicazione. |
| ExecuteSqlCommandAsync(DatabaseFacade, FormattableString, CancellationToken) |
Obsoleti.
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, chiamare BeginTransaction(DatabaseFacade, IsolationLevel) prima o UseTransaction(DatabaseFacade, DbTransaction). Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo perché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. È possibile usare un oggetto ExecutionStrategy in modo esplicito, assicurandosi di usare anche una transazione se SQL non è idempotente.
Come per qualsiasi API che accetta SQL, è importante parametrizzare qualsiasi input utente da proteggere da un attacco SQL injection. È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi specificare i valori dei parametri come argomenti aggiuntivi. Tutti i valori dei parametri specificati verranno convertiti automaticamente in dbParameter - |
| ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, CancellationToken) |
Obsoleti.
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, chiamare BeginTransaction(DatabaseFacade, IsolationLevel) prima o UseTransaction(DatabaseFacade, DbTransaction). Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo perché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. È possibile usare un oggetto ExecutionStrategy in modo esplicito, assicurandosi di usare anche una transazione se SQL non è idempotente.
Come per qualsiasi API che accetta SQL, è importante parametrizzare qualsiasi input utente da proteggere da un attacco SQL injection. È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi specificare i valori dei parametri come argomenti aggiuntivi. Tutti i valori dei parametri specificati verranno convertiti automaticamente in dbParameter - |
| ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, IEnumerable<Object>, CancellationToken) |
Obsoleti.
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, chiamare BeginTransaction(DatabaseFacade, IsolationLevel) prima o UseTransaction(DatabaseFacade, DbTransaction). Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo perché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. È possibile usare un oggetto ExecutionStrategy in modo esplicito, assicurandosi di usare anche una transazione se SQL non è idempotente. Come per qualsiasi API che accetta SQL, è importante parametrizzare qualsiasi input utente da proteggere da un attacco SQL injection. È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi specificare i valori dei parametri come argomenti aggiuntivi. Tutti i valori dei parametri specificati verranno convertiti automaticamente in dbParameter. È anche possibile prendere in considerazione l'uso di ExecuteSqlInterpolated per usare la sintassi di stringa interpolata per creare parametri. |
| ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, Object[]) |
Obsoleti.
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, chiamare BeginTransaction(DatabaseFacade, IsolationLevel) prima o UseTransaction(DatabaseFacade, DbTransaction). Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo perché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. È possibile usare un oggetto ExecutionStrategy in modo esplicito, assicurandosi di usare anche una transazione se SQL non è idempotente.
Come per qualsiasi API che accetta SQL, è importante parametrizzare qualsiasi input utente da proteggere da un attacco SQL injection. È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi specificare i valori dei parametri come argomenti aggiuntivi. Tutti i valori dei parametri specificati verranno convertiti automaticamente in dbParameter - |
| ExecuteSqlCommandAsync(DatabaseFacade, String, CancellationToken, Object[]) |
Fornisce l'accesso alle informazioni e alle operazioni correlate al database per un contesto. Le istanze di questa classe vengono in genere ottenute da Database e non sono progettate per essere costruite direttamente nel codice dell'applicazione. |
| ExecuteSqlInterpolated(DatabaseFacade, FormattableString) |
Obsoleti.
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. |
| ExecuteSqlInterpolatedAsync(DatabaseFacade, FormattableString, CancellationToken) |
Obsoleti.
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. |
| ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>) |
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. |
| ExecuteSqlRaw(DatabaseFacade, String, Object[]) |
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. |
| ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken) |
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. |
| ExecuteSqlRawAsync(DatabaseFacade, String, IEnumerable<Object>, CancellationToken) |
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. |
| ExecuteSqlRawAsync(DatabaseFacade, String, Object[]) |
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. |
| GenerateCreateScript(DatabaseFacade) |
Genera uno script per creare tutte le tabelle per il modello corrente. |
| GetAppliedMigrations(DatabaseFacade) |
Ottiene tutte le migrazioni applicate al database di destinazione. |
| GetAppliedMigrationsAsync(DatabaseFacade, CancellationToken) |
Ottiene in modo asincrono tutte le migrazioni applicate al database di destinazione. |
| GetCommandTimeout(DatabaseFacade) |
Restituisce il timeout impostato in secondi per i comandi eseguiti con questo DbContextoggetto . |
| GetConnectionString(DatabaseFacade) |
Ottiene la stringa di connessione sottostante configurata per l'oggetto DbContext. |
| GetCosmosClient(DatabaseFacade) |
Ottiene l'oggetto sottostante CosmosClient per l'oggetto DbContext. |
| GetCosmosDatabaseId(DatabaseFacade) |
Ottiene il nome del database configurato per l'oggetto DbContext. |
| GetDbConnection(DatabaseFacade) |
Ottiene l'oggetto ADO sottostante.NET DbConnection per questo DbContextoggetto . |
| GetEnlistedTransaction(DatabaseFacade) |
Restituisce la transazione attualmente inclusa. |
| GetInfrastructure<T>(IInfrastructure<T>) |
Ottiene il valore da una proprietà nascosta utilizzando IInfrastructure<T>. Questo metodo viene in genere usato dai provider di database (e altre estensioni). In genere non viene usato nel codice dell'applicazione. |
| GetMigrations(DatabaseFacade) |
Ottiene tutte le migrazioni definite nell'assembly delle migrazioni configurate. |
| GetPendingMigrations(DatabaseFacade) |
Ottiene tutte le migrazioni definite nell'assembly ma non sono state applicate al database di destinazione. |
| GetPendingMigrationsAsync(DatabaseFacade, CancellationToken) |
Ottiene in modo asincrono tutte le migrazioni definite nell'assembly, ma non sono state applicate al database di destinazione. |
| GetSessionToken(DatabaseFacade) |
Ottiene il token di sessione composito per il contenitore predefinito per questo DbContextoggetto . |
| GetSessionTokens(DatabaseFacade) |
Ottiene un dizionario che contiene il token di sessione composito per ogni contenitore per questo DbContextoggetto . |
| HasPendingModelChanges(DatabaseFacade) |
Restituisce |
| IsCosmos(DatabaseFacade) |
Restituisce |
| IsInMemory(DatabaseFacade) |
Restituisce |
| IsRelational(DatabaseFacade) |
Restituisce |
| IsSqlite(DatabaseFacade) |
Restituisce |
| IsSqlServer(DatabaseFacade) |
Restituisce |
| Migrate(DatabaseFacade, String) |
Applica le migrazioni per il contesto al database. Se non esiste già, verrà creato il database. |
| Migrate(DatabaseFacade) |
Applica eventuali migrazioni in sospeso per il contesto al database. Se non esiste già, verrà creato il database. |
| MigrateAsync(DatabaseFacade, CancellationToken) |
Applica in modo asincrono tutte le migrazioni in sospeso per il contesto al database. Se non esiste già, verrà creato il database. |
| MigrateAsync(DatabaseFacade, String, CancellationToken) |
Applica in modo asincrono le migrazioni per il contesto al database. Se non esiste già, verrà creato il database. |
| OpenConnection(DatabaseFacade) |
Apre l'oggetto sottostante DbConnection. |
| OpenConnectionAsync(DatabaseFacade, CancellationToken) |
Apre l'oggetto sottostante DbConnection. |
| SetCommandTimeout(DatabaseFacade, Nullable<Int32>) |
Imposta il timeout (in secondi) da usare per i comandi eseguiti con questo DbContextoggetto . |
| SetCommandTimeout(DatabaseFacade, TimeSpan) |
Imposta il timeout da utilizzare per i comandi eseguiti con questo DbContextoggetto . |
| SetConnectionString(DatabaseFacade, String) |
Imposta il stringa di connessione sottostante configurato per questo DbContextoggetto . |
| SetDbConnection(DatabaseFacade, DbConnection, Boolean) |
Imposta l'oggetto ADO sottostante.NET DbConnection per questo DbContextoggetto . |
| SetDbConnection(DatabaseFacade, DbConnection) |
Imposta l'oggetto ADO sottostante.NET DbConnection per questo DbContextoggetto . |
| SqlQuery<TResult>(DatabaseFacade, FormattableString) |
Crea una query LINQ basata su una query SQL non elaborata, che restituisce un set di risultati di un tipo scalare supportato in modo nativo dal provider di database. |
| SqlQueryRaw<TResult>(DatabaseFacade, String, Object[]) |
Crea una query LINQ basata su una query SQL non elaborata, che restituisce un set di risultati di un tipo scalare supportato in modo nativo dal provider di database. |
| UseSessionToken(DatabaseFacade, String) |
Imposta il token di sessione composito per il contenitore predefinito per questo DbContextoggetto . |
| UseSessionTokens(DatabaseFacade, IReadOnlyDictionary<String,String>) |
Imposta il token di sessioni composite per DbContext ogni contenitore con i token specificati in |
| UseTransaction(DatabaseFacade, DbTransaction, Guid) |
Imposta l'oggetto DbTransaction da utilizzare dalle operazioni di database in DbContext. |
| UseTransaction(DatabaseFacade, DbTransaction) |
Imposta l'oggetto DbTransaction da utilizzare dalle operazioni di database in DbContext. |
| UseTransactionAsync(DatabaseFacade, DbTransaction, CancellationToken) |
Imposta l'oggetto DbTransaction da utilizzare dalle operazioni di database in DbContext. |
| UseTransactionAsync(DatabaseFacade, DbTransaction, Guid, CancellationToken) |
Imposta l'oggetto DbTransaction da utilizzare dalle operazioni di database in DbContext. |