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 | |
---|---|---|
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. | |
Connection | Restituisce la connessione usata da questo contesto.È possibile che venga creata la connessione se non esiste ancora. | |
CurrentTransaction | Ottiene la transazione in cui è integrata la connessione all'archivio sottostante.Può essere Null. | |
DefaultConnectionFactory | Obsoleta. Factory di connessione da usare per la creazione di un oggetto DbConnection da un nome di database o una stringa di connessione. | |
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 | |
---|---|---|
BeginTransaction() | Avvia una transazione sulla connessione all'archivio sottostante | |
BeginTransaction(IsolationLevel) | Avvia una transazione sulla connessione all'archivio sottostante usando il livello di isolamento specificato | |
CompatibleWithModel | Verifica se il database è compatibile o meno con il modello Code First corrente. | |
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. | |
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. | |
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. | |
Delete(DbConnection) | Elimina il database nel server di database se esiste; in caso contrario, non esegue alcuna operazione. | |
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. | |
Equals | Determina un valore che indica se il database specificato è uguale al database corrente. (Esegue l'override di Object.Equals(Object)). | |
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)); | |
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)); | |
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)); | |
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)); | |
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)); | |
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)); | |
Exists() | Controlla se il database esiste nel server. | |
Exists(DbConnection) | Controlla se il database esiste nel server. | |
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. | |
Finalize | (Ereditato da Object) | |
GetHashCode | Restituisce la funzione hash per questo database. (Esegue l'override di Object.GetHashCode()). | |
GetType | Ottiene l'oggetto Type dell'istanza corrente. | |
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. | |
MemberwiseClone | (Ereditato da Object) | |
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>. | |
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)); | |
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&lt;Post&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&lt;Post&gt;("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); | |
ToString | Restituisce una rappresentazione di stringa del database. (Esegue l'override di Object.ToString()). | |
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.