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 create direttamente nel codice dell'applicazione.
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
- Ereditarietà
-
DatabaseFacade
- Implementazioni
-
IInfrastructure<IServiceProvider> Microsoft.EntityFrameworkCore.Internal.IDatabaseFacadeDependenciesAccessor IDatabaseFacadeDependenciesAccessor IResettableService
Costruttori
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à
AutoSavepointsEnabled |
Se un punto di salvataggio delle transazioni verrà creato automaticamente se SaveChanges() viene chiamato dopo che una transazione è stata avviata manualmente con BeginTransaction(). |
AutoTransactionBehavior |
Ottiene o imposta un valore che indica se viene creata automaticamente una transazione se SaveChanges() non è stato chiamato 'BeginTransaction' né 'UseTransaction'. |
AutoTransactionsEnabled |
Obsoleti.
Obsoleti.
Ottiene o imposta un valore che indica se una transazione verrà creata automaticamente se SaveChanges() nessuno dei metodi 'BeginTransaction' o 'UseTransaction' è stato chiamato. |
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, Microsoft.EntityFrameworkCore.SqlServerDatabaseFacadeExtensions.IsSqlServer ad esempio anziché chiamare direttamente questo metodo. |
Metodi
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 IExecutionStrategydi . |
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 effettuato alcun sforzo per rimuovere solo gli oggetti di database usati dal modello per questo contesto. |
EnsureDeletedAsync(CancellationToken) |
Assicura 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 effettuato alcun sforzo per rimuovere solo gli oggetti di database usati 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
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 nessuna versione. È consigliabile usarlo direttamente nel codice con attenzione estrema e sapere che ciò può causare errori dell'applicazione durante l'aggiornamento a una nuova versione di 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 nessuna versione. È consigliabile usarlo direttamente nel codice con attenzione estrema e sapere che ciò può causare errori dell'applicazione durante l'aggiornamento a una nuova versione di Entity Framework Core. |
IInfrastructure<IServiceProvider>.Instance |
Ottiene l'ambito IServiceProvider usato per risolvere i servizi. Questa proprietà è destinata all'uso da parte dei metodi di estensione che devono usare i servizi non esposti direttamente nell'area 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 create direttamente nel codice dell'applicazione. |
Metodi di estensione
GetCosmosClient(DatabaseFacade) |
Ottiene il sottostante CosmosClient per questo DbContextoggetto . |
GetCosmosDatabaseId(DatabaseFacade) |
Ottiene il nome del database configurato per questo DbContextoggetto . |
IsCosmos(DatabaseFacade) |
Restituisce |
GetInfrastructure<T>(IInfrastructure<T>) |
Ottiene il valore da una proprietà nascosta usando IInfrastructure<T>. Questo metodo viene in genere usato dai provider di database (e altre estensioni). In genere non viene usato nel codice dell'applicazione. |
IsInMemory(DatabaseFacade) |
Restituisce |
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. |
ExecuteSql(DatabaseFacade, FormattableString) |
Esegue il valore SQL specificato nel database e restituisce il numero di righe interessate. |
ExecuteSqlAsync(DatabaseFacade, FormattableString, CancellationToken) |
Esegue il valore SQL specificato nel database e restituisce il numero di righe interessate. |
ExecuteSqlCommand(DatabaseFacade, RawSqlString, IEnumerable<Object>) |
Obsoleti.
Esegue il valore SQL specificato nel database e restituisce il numero di righe interessate. Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, prima chiamata BeginTransaction(DatabaseFacade, IsolationLevel) o UseTransaction(DatabaseFacade, DbTransaction). Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo poiché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. Un'istanza di ExecutionStrategy può essere usata 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 forniti verranno convertiti automaticamente in dbParameter. È anche possibile usare ExecuteSqlInterpolated per usare la sintassi stringa interpolata per creare parametri. |
ExecuteSqlCommand(DatabaseFacade, RawSqlString, Object[]) |
Obsoleti.
Esegue il valore SQL specificato nel database e restituisce il numero di righe interessate. Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, prima chiamata BeginTransaction(DatabaseFacade, IsolationLevel) o UseTransaction(DatabaseFacade, DbTransaction). Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo poiché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. Un'istanza di ExecutionStrategy può essere usata 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 forniti verranno convertiti automaticamente in un oggetto DbParameter - |
ExecuteSqlCommand(DatabaseFacade, FormattableString) |
Obsoleti.
Esegue il valore SQL specificato nel database e restituisce il numero di righe interessate. Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, prima chiamata BeginTransaction(DatabaseFacade, IsolationLevel) o UseTransaction(DatabaseFacade, DbTransaction). Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo poiché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. Un'istanza di ExecutionStrategy può essere usata 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 forniti verranno convertiti automaticamente in un oggetto 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 create direttamente nel codice dell'applicazione. |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, IEnumerable<Object>, CancellationToken) |
Obsoleti.
Esegue il valore SQL specificato nel database e restituisce il numero di righe interessate. Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, prima chiamata BeginTransaction(DatabaseFacade, IsolationLevel) o UseTransaction(DatabaseFacade, DbTransaction). Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo poiché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. Un'istanza di ExecutionStrategy può essere usata 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 forniti verranno convertiti automaticamente in dbParameter. È anche possibile usare ExecuteSqlInterpolated per usare la sintassi stringa interpolata per creare parametri. |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, Object[]) |
Obsoleti.
Esegue il valore SQL specificato nel database e restituisce il numero di righe interessate. Si noti che questo metodo non avvia una transazione. Per usare questo metodo con una transazione, prima chiamata BeginTransaction(DatabaseFacade, IsolationLevel) o UseTransaction(DatabaseFacade, DbTransaction). Si noti che l'oggetto corrente ExecutionStrategy non viene usato da questo metodo poiché SQL potrebbe non essere idempotente e non viene eseguito in una transazione. Un'istanza di ExecutionStrategy può essere usata 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 forniti verranno convertiti automaticamente in un oggetto DbParameter - |
ExecuteSqlCommandAsync(DatabaseFacade, RawSqlString, CancellationToken) |
Obsoleti.
Esegue il valore SQL specificato nel 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 dell'utente per proteggersi 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, 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 dell'utente per proteggersi 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 create direttamente nel codice dell'applicazione. |
ExecuteSqlInterpolated(DatabaseFacade, FormattableString) |
Esegue il codice SQL specificato sul database e restituisce il numero di righe interessate. |
ExecuteSqlInterpolatedAsync(DatabaseFacade, FormattableString, CancellationToken) |
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, 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. |
ExecuteSqlRawAsync(DatabaseFacade, String, CancellationToken) |
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 il stringa di connessione sottostante configurato per l'oggetto DbContext. |
GetDbConnection(DatabaseFacade) |
Ottiene il ADO.NET DbConnection sottostante per l'oggetto DbContext. |
GetMigrations(DatabaseFacade) |
Ottiene tutte le migrazioni definite nell'assembly delle migrazioni configurato. |
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. |
HasPendingModelChanges(DatabaseFacade) |
Restituisce |
IsRelational(DatabaseFacade) |
Restituisce |
Migrate(DatabaseFacade) |
Applica tutte le migrazioni in sospeso per il contesto al database. Crea il database se non esiste già. |
MigrateAsync(DatabaseFacade, CancellationToken) |
Applica in modo asincrono tutte le migrazioni in sospeso per il contesto al database. Crea il database se non esiste già. |
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 usare per i comandi eseguiti con questo DbContextoggetto . |
SetConnectionString(DatabaseFacade, String) |
Imposta la stringa di connessione sottostante configurata per questo DbContextoggetto . |
SetDbConnection(DatabaseFacade, DbConnection, Boolean) |
Imposta il ADO.NET DbConnection sottostante per questo DbContextoggetto . |
SetDbConnection(DatabaseFacade, DbConnection) |
Imposta il ADO.NET DbConnection sottostante 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. |
UseTransaction(DatabaseFacade, DbTransaction, Guid) |
Imposta l'oggetto DbTransaction da utilizzare dalle operazioni del database in DbContext. |
UseTransaction(DatabaseFacade, DbTransaction) |
Imposta l'oggetto DbTransaction da utilizzare dalle operazioni del database in DbContext. |
UseTransactionAsync(DatabaseFacade, DbTransaction, Guid, CancellationToken) |
Imposta l'oggetto DbTransaction da utilizzare dalle operazioni del database in DbContext. |
UseTransactionAsync(DatabaseFacade, DbTransaction, CancellationToken) |
Imposta l'oggetto DbTransaction da utilizzare dalle operazioni del database in DbContext. |
IsSqlite(DatabaseFacade) |
Restituisce |
IsSqlServer(DatabaseFacade) |
Restituisce |
EnlistTransaction(DatabaseFacade, Transaction) |
Specifica un oggetto esistente Transaction da utilizzare per le operazioni del database. |
GetEnlistedTransaction(DatabaseFacade) |
Restituisce la transazione attualmente inserita. |