Share via


Classe Database

[Questa pagina è specifica della versione 6 di Entity Framework. La versione più recente è disponibile come pacchetto NuGet per "Entity Framework". Per ulteriori informazioni su Entity Framework, vedere la pagina msdn.com/data/ef.]

Un'istanza di questa classe viene ottenuta da un oggetto DbContext e può essere usata per gestire il database effettivo che supporta un oggetto DbContext o una connessione. Include la creazione, l'eliminazione e il controllo dell'esistenza di un database. Si noti che l'eliminazione e il controllo della presenza di un database possono essere eseguiti usando una connessione, anche senza un contesto completo, usando i metodi statici della classe.

Gerarchia di ereditarietà

System.Object
  System.Data.Entity.Database

Spazio dei nomi:  System.Data.Entity
Assembly:  EntityFramework (in EntityFramework.dll)

Sintassi

'Dichiarazione
<SuppressMessageAttribute("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification := "The DbContextTransaction and EntityTransaction should never be disposed by this class")> _
Public Class Database
'Utilizzo
Dim instance As Database
[SuppressMessageAttribute("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification = "The DbContextTransaction and EntityTransaction should never be disposed by this class")]
public class Database
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification = L"The DbContextTransaction and EntityTransaction should never be disposed by this class")]
public ref class Database
[<SuppressMessageAttribute("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification = "The DbContextTransaction and EntityTransaction should never be disposed by this class")>]
type Database =  class end
public class Database

Il tipo Database espone i seguenti membri.

Proprietà

  rapporti Descrizione
Proprietà pubblica CommandTimeout Ottiene o imposta il valore di timeout, espresso in secondi, per tutte le operazioni del contesto.Il valore predefinito è Null, dove Null indica che verrà usato il valore predefinito del provider sottostante.
Proprietà pubblica Connection Restituisce la connessione usata da questo contesto.È possibile che venga creata la connessione se non esiste ancora.
Proprietà pubblica CurrentTransaction Ottiene la transazione in cui è integrata la connessione all'archivio sottostante.Può essere Null.
Proprietà pubblicaMembro statico DefaultConnectionFactory Obsoleta. Factory di connessione da usare per la creazione di un oggetto DbConnection da un nome di database o una stringa di connessione.
Proprietà pubblica Log Imposta questa proprietà per registrare il codice SQL generato da DbContext nel delegato specificato.Ad esempio, per registrare nella console, imposta questa proprietà su Write(String).

In alto

Metodi

  rapporti Descrizione
Metodo pubblico BeginTransaction() Avvia una transazione sulla connessione all'archivio sottostante
Metodo pubblico BeginTransaction(IsolationLevel) Avvia una transazione sulla connessione all'archivio sottostante usando il livello di isolamento specificato
Metodo pubblico CompatibleWithModel Verifica se il database è compatibile o meno con il modello Code First corrente.
Metodo pubblico Create Crea un nuovo database nel server di database per il modello definito nel contesto di supporto.Se tale metodo viene chiamato prima dell'esecuzione della strategia di inizializzazione del database, l'esecuzione della strategia verrà disabilitata.
Metodo pubblico CreateIfNotExists Crea un nuovo database nel server di database per il modello definito nel contesto di supporto, ma solo se un database con lo stesso nome non esiste già nel server.
Metodo pubblico Delete() Elimina il database nel server di database se esiste; in caso contrario, non esegue alcuna operazione.Chiamando questo metodo dall'esterno di inizializzatore si contrassegna il database come se non fosse stato inizializzato.Ciò significa che se si tenta di usare nuovamente il database dopo che è stato eliminato, qualsiasi set dell'inizializzatore verrà eseguito nuovamente e di solito verrà effettuato un altro tentativo di creare il database.
Metodo pubblicoMembro statico Delete(DbConnection) Elimina il database nel server di database se esiste; in caso contrario, non esegue alcuna operazione.
Metodo pubblicoMembro statico Delete(String) Elimina il database nel server di database se esiste; in caso contrario, non esegue alcuna operazione.La connessione al database viene creata usando il nome del database o la stringa di connessione specificata nella stessa modalità descritta nella documentazione per la classe DbContext.
Metodo pubblico Equals Determina un valore che indica se il database specificato è uguale al database corrente. (Esegue l'override di Object.Equals(Object)).
Metodo pubblico ExecuteSqlCommand(String, Object[]) Esegue il comando DDL/DML specificato sul database.Come con qualsiasi API che accetta SQL, è importante parametrizzare un input utente in modo da fornire protezione da un attacco SQL injection.È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi fornire i valori dei parametri come argomenti aggiuntivi.Tutti i valori dei parametri forniti verranno convertiti automaticamente in DbParameter.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); in alternativa, è anche possibile costruire un oggetto DbParameter e fornirlo a SqlQuery.In questo modo è possibile usare i parametri denominati nella stringa di query SQL.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Metodo pubblico ExecuteSqlCommand(TransactionalBehavior, String, Object[]) Esegue il comando DDL/DML specificato sul database.Come con qualsiasi API che accetta SQL, è importante parametrizzare un input utente in modo da fornire protezione da un attacco SQL injection.È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi fornire i valori dei parametri come argomenti aggiuntivi.Tutti i valori dei parametri forniti verranno convertiti automaticamente in DbParameter.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); in alternativa, è anche possibile costruire un oggetto DbParameter e fornirlo a SqlQuery.In questo modo è possibile usare i parametri denominati nella stringa di query SQL.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Metodo pubblico ExecuteSqlCommandAsync(String, Object[]) Esegue in modo asincrono il comando DDL/DML specificato sul database.Come con qualsiasi API che accetta SQL, è importante parametrizzare un input utente in modo da fornire protezione da un attacco SQL injection.È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi fornire i valori dei parametri come argomenti aggiuntivi.Tutti i valori dei parametri forniti verranno convertiti automaticamente in DbParameter.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); in alternativa, è anche possibile costruire un oggetto DbParameter e fornirlo a SqlQuery.In questo modo è possibile usare i parametri denominati nella stringa di query SQL.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Metodo pubblico ExecuteSqlCommandAsync(String, CancellationToken, Object[]) Esegue in modo asincrono il comando DDL/DML specificato sul database.Come con qualsiasi API che accetta SQL, è importante parametrizzare un input utente in modo da fornire protezione da un attacco SQL injection.È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi fornire i valori dei parametri come argomenti aggiuntivi.Tutti i valori dei parametri forniti verranno convertiti automaticamente in DbParameter.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); in alternativa, è anche possibile costruire un oggetto DbParameter e fornirlo a SqlQuery.In questo modo è possibile usare i parametri denominati nella stringa di query SQL.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Metodo pubblico ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[]) Esegue in modo asincrono il comando DDL/DML specificato sul database.Come con qualsiasi API che accetta SQL, è importante parametrizzare un input utente in modo da fornire protezione da un attacco SQL injection.È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi fornire i valori dei parametri come argomenti aggiuntivi.Tutti i valori dei parametri forniti verranno convertiti automaticamente in DbParameter.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); in alternativa, è anche possibile costruire un oggetto DbParameter e fornirlo a SqlQuery.In questo modo è possibile usare i parametri denominati nella stringa di query SQL.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Metodo pubblico ExecuteSqlCommandAsync(TransactionalBehavior, String, CancellationToken, Object[]) Esegue in modo asincrono il comando DDL/DML specificato sul database.Come con qualsiasi API che accetta SQL, è importante parametrizzare un input utente in modo da fornire protezione da un attacco SQL injection.È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi fornire i valori dei parametri come argomenti aggiuntivi.Tutti i valori dei parametri forniti verranno convertiti automaticamente in DbParameter.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); in alternativa, è anche possibile costruire un oggetto DbParameter e fornirlo a SqlQuery.In questo modo è possibile usare i parametri denominati nella stringa di query SQL.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Metodo pubblico Exists() Controlla se il database esiste nel server.
Metodo pubblicoMembro statico Exists(DbConnection) Controlla se il database esiste nel server.
Metodo pubblicoMembro statico Exists(String) Controlla se il database esiste nel server.La connessione al database viene creata usando il nome del database o la stringa di connessione specificata nella stessa modalità descritta nella documentazione per la classe DbContext.
Metodo protetto Finalize (Ereditato da Object)
Metodo pubblico GetHashCode Restituisce la funzione hash per questo database. (Esegue l'override di Object.GetHashCode()).
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente.
Metodo pubblico Initialize Esegue l'oggetto IDatabaseInitializer<TContext> registrato in questo contesto.Se 'force' è impostato su true, l'inizializzatore viene eseguito indipendentemente dal fatto che sia stato eseguito prima.Ciò può essere utile se un database viene eliminato mentre un'applicazione è in esecuzione e deve essere reinizializzato.Se 'force' è impostato su false, l'inizializzatore verrà eseguito solo se non è già stato eseguito per tale contesto, modello e connessione in questo dominio dell'applicazione.Questo metodo viene in genere usato quando è necessario garantire la creazione e il seeding del database prima di avviare un'operazione nel caso in cui questo l'approccio lazy comporti dei problemi, ad esempio quando l'operazione fa parte di una transazione.
Metodo protetto MemberwiseClone (Ereditato da Object)
Metodo pubblicoMembro statico SetInitializer<TContext> Imposta l'inizializzatore del database da usare per il tipo di contesto specificato.L'inizializzatore del database viene chiamato quando il tipo DbContext specificato viene usato per accedere a un database per la prima volta.La strategia predefinita per i contesti Code First è un'istanza di CreateDatabaseIfNotExists<TContext>.
Metodo pubblico SqlQuery(Type, String, Object[]) Crea una query SQL non elaborata che restituirà gli elementi del tipo specificato.Il tipo può essere un qualsiasi tipo che dispone di proprietà che corrispondono ai nomi delle colonne restituite dalla query o può essere un semplice tipo primitivo.Non è necessario che il tipo sia un tipo di entità.I risultati di questa query non verranno mai rilevati dal contesto anche se il tipo di oggetto restituito è un tipo di entità.Usare il metodo SqlQuery(String, Object[]) per restituire le entità rilevate dal contesto.Come con qualsiasi API che accetta SQL, è importante parametrizzare un input utente in modo da fornire protezione da un attacco SQL injection.È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi fornire i valori dei parametri come argomenti aggiuntivi.Tutti i valori dei parametri forniti verranno convertiti automaticamente in DbParameter.context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); in alternativa, è inoltre possibile costruire un oggetto DbParameter e fornirlo a SqlQuery.In questo modo è possibile usare i parametri denominati nella stringa di query SQL.context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Metodo pubblico SqlQuery<TElement>(String, Object[]) Crea una query SQL non elaborata che restituirà gli elementi del tipo generico specificato.Il tipo può essere un qualsiasi tipo che dispone di proprietà che corrispondono ai nomi delle colonne restituite dalla query o può essere un semplice tipo primitivo.Non è necessario che il tipo sia un tipo di entità.I risultati di questa query non verranno mai rilevati dal contesto anche se il tipo di oggetto restituito è un tipo di entità.Usare il metodo SqlQuery(String, Object[]) per restituire le entità rilevate dal contesto.Come con qualsiasi API che accetta SQL, è importante parametrizzare un input utente in modo da fornire protezione da un attacco SQL injection.È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi fornire i valori dei parametri come argomenti aggiuntivi.Tutti i valori dei parametri forniti verranno convertiti automaticamente in DbParameter.context.Database.SqlQuery&amp;lt;Post&amp;gt;("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); in alternativa, è anche possibile costruire un oggetto DbParameter e fornirlo a SqlQuery.In questo modo è possibile usare i parametri denominati nella stringa di query SQL.context.Database.SqlQuery&amp;lt;Post&amp;gt;("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Metodo pubblico ToString Restituisce una rappresentazione di stringa del database. (Esegue l'override di Object.ToString()).
Metodo pubblico UseTransaction Consente all'utente di passare una transazione di database creata al di fuori dell'oggetto Database se si desidera che Entity Framework esegua comandi in quella transazione esterna.In alternativa, passare Null per cancellare la consapevolezza del framework di tale transazione.

In alto

Thread safety

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. Non è invece garantita la sicurezza dei membri dell'istanza.

Vedere anche

Riferimento

Spazio dei nomi System.Data.Entity