Freigeben über


Database-Klasse

[Diese Seite bezieht sich auf Entity Framework Version 6. Die neueste Version ist als 'Entity Framework' NuGet-Paket verfügbar. Weitere Informationen zu Entity Framework finden Sie unter msdn.com/data/ef.]

Eine Instanz dieser Klasse wird aus einem DbContext-Objekt abgerufen und kann zum Verwalten der Datenbank verwendet werden, die einen DbContext oder eine Verbindung unterstützt. Dies schließt das Erstellen, Löschen und Überprüfen auf Vorhandensein einer Datenbank ein. Beachten Sie, dass nur eine Verbindung erforderlich ist, um eine Datenbank zu löschen oder ihr Vorhandensein zu prüfen (also ohne einen vollständigen Kontext), wenn Sie die statischen Methoden dieser Klasse verwenden.

Vererbungshierarchie

System.Object
  System.Data.Entity.Database

Namespace:  System.Data.Entity
Assembly:  EntityFramework (in EntityFramework.dll)

Syntax

'Declaration
<SuppressMessageAttribute("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Justification := "The DbContextTransaction and EntityTransaction should never be disposed by this class")> _
Public Class Database
'Usage
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

Der Database-Typ macht die folgenden Member verfügbar.

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft CommandTimeout Ruft den Timeoutwert in Sekunden für alle Operationen im Kontext ab oder legt diesen fest.Der Standardwert ist NULL, wobei NULL angibt, dass der Standardwert des zugrunde liegenden Anbieters verwendet wird.
Öffentliche Eigenschaft Connection Gibt die Verbindung zurück, die von diesem Kontext verwendet wird.Das kann zum Herstellen der Verbindung führen, wenn sie nicht bereits vorhanden ist.
Öffentliche Eigenschaft CurrentTransaction Ruft die Transaktion ab, in der die zugrundeliegende Verbindung aufgeführt ist.Ist möglicherweise NULL.
Öffentliche EigenschaftStatischer Member DefaultConnectionFactory Veraltet. Die Verbindungsfactory, die beim Erstellen einer DbConnection aus lediglich einem Datenbanknamen oder einer Verbindungszeichenfolge verwendet werden soll.
Öffentliche Eigenschaft Log Legen Sie diese Eigenschaft fest, um den durch die DbContext generierten SQL-Befehl für den gegebenen Delegat zu protokollieren.Um beispielsweise für die Konsole zu protokollieren, legen Sie diese Eigenschaft auf Write(String) fest.

Oben

Methoden

  Name Beschreibung
Öffentliche Methode BeginTransaction() Startet eine Transaktion für die zugrunde liegenden Speicherverbindung.
Öffentliche Methode BeginTransaction(IsolationLevel) Startet mithilfe der angegebenen Isolationsstufe eine Transaktion für die zugrunde liegende Verbindung.
Öffentliche Methode CompatibleWithModel Überprüft, ob die Datenbank mit dem aktuellen Code First-Modell kompatibel ist.
Öffentliche Methode Create Erstellt eine neue Datenbank auf dem Datenbankserver für das im Unterstützungskontext definierte Modell.Beachten Sie, dass das Ausführen dieser Strategie deaktiviert wird, wenn diese Methode aufgerufen wird, bevor die Datenbankinitialisierungsstrategie ausgeführt wurde.
Öffentliche Methode CreateIfNotExists Erstellt eine neue Datenbank auf dem Datenbankserver für das im Unterstützungskontext definierte Modell, jedoch nur, wenn auf dem Server nicht bereits eine Datenbank mit dem gleichen Namen vorhanden ist.
Öffentliche Methode Delete() Löscht die Datenbank auf dem Datenbankserver, wenn sie vorhanden ist, und führt andernfalls keine Aktion aus.Durch das Aufrufen dieser Methode von außerhalb eines Initialisierers wird die Datenbank als nicht initialisiert markiert.Das bedeutet, dass bei dem Versuch, die Datenbank nach dem Löschen wieder zu verwenden, ein beliebiger Initialisierersatz erneut ausgeführt wird. Dies führt in der Regel dazu, dass versucht wird, die Datenbank automatisch erneut zu erstellen.
Öffentliche MethodeStatischer Member Delete(DbConnection) Löscht die Datenbank auf dem Datenbankserver, wenn sie vorhanden ist, und führt andernfalls keine Aktion aus.
Öffentliche MethodeStatischer Member Delete(String) Löscht die Datenbank auf dem Datenbankserver, wenn sie vorhanden ist, und führt andernfalls keine Aktion aus.Die Verbindung mit der Datenbank wird wie in der Dokumentation für die DbContext-Klasse beschrieben mit dem angegebenen Datenbanknamen oder der angegebenen Verbindungszeichenfolge erstellt.
Öffentliche Methode Equals Ermittelt, ob die angegebene Datenbank und die aktuelle Datenbank gleich sind. (Überschreibt Object.Equals(Object).)
Öffentliche Methode ExecuteSqlCommand(String, Object[]) Führt den angegebenen DDL-/DML-Befehl für die Datenbank aus.Wie bei allen APIs, die SQL akzeptieren, müssen Sie darauf achten, alle Benutzereingaben zum Schutz vor SQL-Injection-Angriffen zu parametrisieren.Sie können in der SQL-Abfragezeichenfolge Platzhalter für Parameter einschließen und die Parameterwerte anschließend als zusätzliche Argumente angeben.Alle angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Als Alternative können Sie auch einen DbParameter erstellen und an SqlQuery übergeben.Auf diese Weise können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Öffentliche Methode ExecuteSqlCommand(TransactionalBehavior, String, Object[]) Führt den angegebenen DDL-/DML-Befehl für die Datenbank aus.Wie bei allen APIs, die SQL akzeptieren, müssen Sie darauf achten, alle Benutzereingaben zum Schutz vor SQL-Injection-Angriffen zu parametrisieren.Sie können in der SQL-Abfragezeichenfolge Platzhalter für Parameter einschließen und die Parameterwerte anschließend als zusätzliche Argumente angeben.Alle angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Als Alternative können Sie auch einen DbParameter erstellen und an SqlQuery übergeben.Auf diese Weise können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden.context.Database.ExecuteSqlCommand("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Öffentliche Methode ExecuteSqlCommandAsync(String, Object[]) Führt asynchron den angegebenen DDL-/DML-Befehl für die Datenbank aus.Wie bei allen APIs, die SQL akzeptieren, müssen Sie darauf achten, alle Benutzereingaben zum Schutz vor SQL-Injection-Angriffen zu parametrisieren.Sie können in der SQL-Abfragezeichenfolge Platzhalter für Parameter einschließen und die Parameterwerte anschließend als zusätzliche Argumente angeben.Alle angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Als Alternative können Sie auch einen DbParameter erstellen und an SqlQuery übergeben.Auf diese Weise können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Öffentliche Methode ExecuteSqlCommandAsync(String, CancellationToken, Object[]) Führt asynchron den angegebenen DDL-/DML-Befehl für die Datenbank aus.Wie bei allen APIs, die SQL akzeptieren, müssen Sie darauf achten, alle Benutzereingaben zum Schutz vor SQL-Injection-Angriffen zu parametrisieren.Sie können in der SQL-Abfragezeichenfolge Platzhalter für Parameter einschließen und die Parameterwerte anschließend als zusätzliche Argumente angeben.Alle angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Als Alternative können Sie auch einen DbParameter erstellen und an SqlQuery übergeben.Auf diese Weise können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Öffentliche Methode ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[]) Führt asynchron den angegebenen DDL-/DML-Befehl für die Datenbank aus.Wie bei allen APIs, die SQL akzeptieren, müssen Sie darauf achten, alle Benutzereingaben zum Schutz vor SQL-Injection-Angriffen zu parametrisieren.Sie können in der SQL-Abfragezeichenfolge Platzhalter für Parameter einschließen und die Parameterwerte anschließend als zusätzliche Argumente angeben.Alle angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Als Alternative können Sie auch einen DbParameter erstellen und an SqlQuery übergeben.Auf diese Weise können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Öffentliche Methode ExecuteSqlCommandAsync(TransactionalBehavior, String, CancellationToken, Object[]) Führt asynchron den angegebenen DDL-/DML-Befehl für die Datenbank aus.Wie bei allen APIs, die SQL akzeptieren, müssen Sie darauf achten, alle Benutzereingaben zum Schutz vor SQL-Injection-Angriffen zu parametrisieren.Sie können in der SQL-Abfragezeichenfolge Platzhalter für Parameter einschließen und die Parameterwerte anschließend als zusätzliche Argumente angeben.Alle angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Als Alternative können Sie auch einen DbParameter erstellen und an SqlQuery übergeben.Auf diese Weise können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden.context.Database.ExecuteSqlCommandAsync("UPDATE dbo.Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Öffentliche Methode Exists() Überprüft, ob die Datenbank auf dem Server vorhanden ist.
Öffentliche MethodeStatischer Member Exists(DbConnection) Überprüft, ob die Datenbank auf dem Server vorhanden ist.
Öffentliche MethodeStatischer Member Exists(String) Überprüft, ob die Datenbank auf dem Server vorhanden ist.Die Verbindung mit der Datenbank wird wie in der Dokumentation für die DbContext-Klasse beschrieben mit dem angegebenen Datenbanknamen oder der angegebenen Verbindungszeichenfolge erstellt.
Geschützte Methode Finalize (Von Object geerbt.)
Öffentliche Methode GetHashCode Gibt die Hashfunktion für diese Datenbank zurück. (Überschreibt Object.GetHashCode().)
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab.
Öffentliche Methode Initialize Führt den registrierten IDatabaseInitializer<TContext> für diesen Kontext aus.Wenn der "force" auf TRUE festgelegt ist, wird der Initialisierer unabhängig davon ausgeführt, ob er zuvor ausgeführt wurde.Dies kann hilfreich sein, wenn eine Datenbank gelöscht wird, während eine Anwendung ausgeführt wird, und neu initialisiert werden muss.Wenn "force" auf FALSE festgelegt ist, wird der Initialisierer nur ausgeführt, wenn er noch nicht für diesen Kontext, dieses Modell und diese Verbindung in dieser Anwendungsdomäne ausgeführt wurde.Diese Methode wird in der Regel verwendet, wenn es erforderlich ist, dass die Datenbank vor dem Beginn eines Vorgangs erstellt und mit Startwerten versehen ist, wenn eine Verzögerung Probleme auslösen könnte, z. B. wenn der Vorgang Teil einer Transaktion ist.
Geschützte Methode MemberwiseClone (Von Object geerbt.)
Öffentliche MethodeStatischer Member SetInitializer<TContext> Legt den Datenbankinitialisierer fest, der für den angegebenen Kontexttyp verwendet werden soll.Der Datenbankinitialisierer wird aufgerufen, wenn der angegebene DbContext-Typ verwendet wird, um zum ersten Mal auf eine Datenbank zuzugreifen.Die Standardstrategie für Code First-Kontexte ist eine Instanz von CreateDatabaseIfNotExists<TContext>.
Öffentliche Methode SqlQuery(Type, String, Object[]) Erstellt eine unformatierte SQL-Abfrage, die Elemente des angegebenen Typs zurückgibt.Der Typ kann jeder Typ sein, der Eigenschaften aufweist, die mit den Namen der von der Abfrage zurückgegebenen Spalten übereinstimmen, oder es kann ein einfacher primitiver Typ sein.Der Typ muss kein Entitätstyp sein.Die Ergebnisse dieser Abfrage werden nie vom Kontext nachverfolgt, auch wenn der Typ des zurückgegebenen Objekts ein Entitätstyp ist.Verwenden Sie die SqlQuery(String, Object[])-Methode, um Entitäten zurückzugeben, die vom Kontext nachverfolgt werden.Wie bei allen APIs, die SQL akzeptieren, müssen Sie darauf achten, alle Benutzereingaben zum Schutz vor SQL-Injection-Angriffen zu parametrisieren.Sie können in der SQL-Abfragezeichenfolge Platzhalter für Parameter einschließen und die Parameterwerte anschließend als zusätzliche Argumente angeben.Alle angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert.context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Als Alternative können Sie auch einen DbParameter erstellen und an SqlQuery übergeben.Auf diese Weise können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden.context.Database.SqlQuery(typeof(Post), "SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Öffentliche Methode SqlQuery<TElement>(String, Object[]) Erstellt eine unformatierte SQL-Abfrage, die Elemente des angegebenen generischen Typs zurückgibt.Der Typ kann jeder Typ sein, der Eigenschaften aufweist, die mit den Namen der von der Abfrage zurückgegebenen Spalten übereinstimmen, oder es kann ein einfacher primitiver Typ sein.Der Typ muss kein Entitätstyp sein.Die Ergebnisse dieser Abfrage werden nie vom Kontext nachverfolgt, auch wenn der Typ des zurückgegebenen Objekts ein Entitätstyp ist.Verwenden Sie die SqlQuery(String, Object[])-Methode, um Entitäten zurückzugeben, die vom Kontext nachverfolgt werden.Wie bei allen APIs, die SQL akzeptieren, müssen Sie darauf achten, alle Benutzereingaben zum Schutz vor SQL-Injection-Angriffen zu parametrisieren.Sie können in der SQL-Abfragezeichenfolge Platzhalter für Parameter einschließen und die Parameterwerte anschließend als zusätzliche Argumente angeben.Alle angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert.context.Database.SqlQuery&lt;Post&gt;("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Als Alternative können Sie auch einen DbParameter erstellen und an SqlQuery übergeben.Auf diese Weise können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden.context.Database.SqlQuery&lt;Post&gt;("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Öffentliche Methode ToString Gibt eine Zeichenfolgendarstellung der Datenbank zurück. (Überschreibt Object.ToString().)
Öffentliche Methode UseTransaction Ermöglicht dem Benutzer die Übergabe einer Datenbanktransaktion, die außerhalb des Database-Objekts erstellt wurde, wenn Sie möchten, dass Entity Framework Befehle innerhalb dieser externen Transaktion ausführt.Übergeben Sie alternativ NULL, um die Erinnerung des Frameworks an diese Transaktion zu löschen.

Oben

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Verweis

System.Data.Entity-Namespace