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 | |
---|---|---|
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. | |
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. | |
CurrentTransaction | Ruft die Transaktion ab, in der die zugrundeliegende Verbindung aufgeführt ist.Ist möglicherweise NULL. | |
DefaultConnectionFactory | Veraltet. Die Verbindungsfactory, die beim Erstellen einer DbConnection aus lediglich einem Datenbanknamen oder einer Verbindungszeichenfolge verwendet werden soll. | |
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 | |
---|---|---|
BeginTransaction() | Startet eine Transaktion für die zugrunde liegenden Speicherverbindung. | |
BeginTransaction(IsolationLevel) | Startet mithilfe der angegebenen Isolationsstufe eine Transaktion für die zugrunde liegende Verbindung. | |
CompatibleWithModel | Überprüft, ob die Datenbank mit dem aktuellen Code First-Modell kompatibel ist. | |
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. | |
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. | |
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. | |
Delete(DbConnection) | Löscht die Datenbank auf dem Datenbankserver, wenn sie vorhanden ist, und führt andernfalls keine Aktion aus. | |
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. | |
Equals | Ermittelt, ob die angegebene Datenbank und die aktuelle Datenbank gleich sind. (Überschreibt Object.Equals(Object).) | |
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)); | |
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)); | |
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)); | |
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)); | |
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)); | |
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)); | |
Exists() | Überprüft, ob die Datenbank auf dem Server vorhanden ist. | |
Exists(DbConnection) | Überprüft, ob die Datenbank auf dem Server vorhanden ist. | |
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. | |
Finalize | (Von Object geerbt.) | |
GetHashCode | Gibt die Hashfunktion für diese Datenbank zurück. (Überschreibt Object.GetHashCode().) | |
GetType | Ruft den Type der aktuellen Instanz ab. | |
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. | |
MemberwiseClone | (Von Object geerbt.) | |
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>. | |
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)); | |
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<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<Post>("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor)); | |
ToString | Gibt eine Zeichenfolgendarstellung der Datenbank zurück. (Überschreibt Object.ToString().) | |
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.