Condividi tramite


Database Classe

Definizione

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

public class Database
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification="The DbContextTransaction and EntityTransaction should never be disposed by this class")]
public class Database
type Database = class
Public Class Database
Ereditarietà
Database
Attributi

Proprietà

CommandTimeout

Ottiene o imposta il valore di timeout, espresso in secondi, per tutte le operazioni di contesto. Il valore predefinito è Null, dove null indica che verrà usato il valore predefinito del provider sottostante.

Connection

Restituisce la connessione utilizzata da questo contesto. Ciò può causare la creazione della connessione se non esiste già.

CurrentTransaction

Ottiene la transazione in cui è inserita la connessione all'archivio sottostante. Può essere Null.

DefaultConnectionFactory
Obsoleti.

Factory di connessione da utilizzare per la creazione di un DbConnection oggetto da un nome di database o da una stringa di connessione.

Log

Impostare questa proprietà per registrare il codice SQL generato dall'oggetto DbContext al delegato specificato. Ad esempio, per accedere alla console, impostare questa proprietà su Write(String).

Metodi

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(Boolean)

Controlla se il database è compatibile con il modello Code First corrente.

Create()

Crea un nuovo database nel server 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 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 database se esiste; in caso contrario, non esegue alcuna operazione. La chiamata a questo metodo dall'esterno di un inizializzatore contrassegnerà il database come non inizializzato. Ciò significa che se viene effettuato un tentativo di usare di nuovo il database dopo l'eliminazione, qualsiasi set di inizializzatori verrà eseguito di nuovo e, in genere, tenterà di creare nuovamente il database automaticamente.

Delete(DbConnection)

Elimina il database nel server database se esiste; in caso contrario, non esegue alcuna operazione.

Delete(String)

Elimina il database nel server database se esiste; in caso contrario, non esegue alcuna operazione. La connessione al database viene creata usando il nome del database specificato o la stringa di connessione nello stesso modo descritto nella documentazione per la DbContext classe .

Equals(Object)

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

ExecuteSqlCommand(String, Object[])

Esegue il comando DDL/DML specificato sul database.

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 forniti verranno convertiti automaticamente in dbParameter. Contesto. Database.ExecuteSqlCommand("UPDATE dbo. Post SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); In alternativa, è anche possibile costruire un dbParameter e specificarlo a SqlQuery. In questo modo è possibile usare parametri denominati nella stringa di query SQL. Contesto. Database.ExecuteSqlCommand("UPDATE dbo. Post SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommand(TransactionalBehavior, String, Object[])

Esegue il comando DDL/DML specificato sul database.

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 forniti verranno convertiti automaticamente in dbParameter. Contesto. Database.ExecuteSqlCommand("UPDATE dbo. Post SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); In alternativa, è anche possibile costruire un dbParameter e specificarlo a SqlQuery. In questo modo è possibile usare parametri denominati nella stringa di query SQL. Contesto. Database.ExecuteSqlCommand("UPDATE dbo. Post 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 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 forniti verranno convertiti automaticamente in dbParameter. Contesto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Post SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); In alternativa, è anche possibile costruire un dbParameter e specificarlo a SqlQuery. In questo modo è possibile usare parametri denominati nella stringa di query SQL. Contesto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Post 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 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 forniti verranno convertiti automaticamente in dbParameter. Contesto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Post SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); In alternativa, è anche possibile costruire un dbParameter e specificarlo a SqlQuery. In questo modo è possibile usare parametri denominati nella stringa di query SQL. Contesto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Post 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 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 forniti verranno convertiti automaticamente in dbParameter. Contesto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Post SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); In alternativa, è anche possibile costruire un dbParameter e specificarlo a SqlQuery. In questo modo è possibile usare parametri denominati nella stringa di query SQL. Contesto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Post 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 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 forniti verranno convertiti automaticamente in dbParameter. Contesto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Post SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); In alternativa, è anche possibile costruire un dbParameter e specificarlo a SqlQuery. In questo modo è possibile usare parametri denominati nella stringa di query SQL. Contesto. Database.ExecuteSqlCommandAsync("UPDATE dbo. Post 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 specificato o la stringa di connessione nello stesso modo descritto nella documentazione per la DbContext classe .

GetHashCode()

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

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

Initialize(Boolean)

Esegue l'oggetto registrato IDatabaseInitializer<TContext> in questo contesto. Se "force" è impostato su true, l'inizializzatore viene eseguito indipendentemente dal fatto che sia stato eseguito o meno in precedenza. 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 viene eseguito solo se non è già stato eseguito per questo contesto, modello e connessione in questo dominio dell'app. Questo metodo viene in genere usato quando è necessario per assicurarsi che il database sia stato creato e sottoposto a seeding prima di avviare un'operazione in cui questa operazione provocherà problemi, ad esempio quando l'operazione fa parte di una transazione.

SetInitializer<TContext>(IDatabaseInitializer<TContext>)

Imposta l'inizializzatore di database da utilizzare per il tipo di contesto specificato. L'inizializzatore di database viene chiamato quando viene usato un tipo specificato DbContext 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. Il tipo non deve essere 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 SqlQuery(String, Object[]) metodo per restituire entità rilevate dal contesto.

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. Il tipo non deve essere 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 SqlQuery(String, Object[]) metodo per restituire entità rilevate dal contesto.

ToString()

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

UseTransaction(DbTransaction)

Consente all'utente di passare una transazione di database creata all'esterno dell'oggetto Database se si desidera che Entity Framework eseguo i comandi all'interno di tale transazione esterna. In alternativa, passare Null per cancellare la conoscenza del framework di tale transazione.

Si applica a