Database Klasse

Definition

Ein instance dieser Klasse wird aus einem DbContext -Objekt abgerufen und kann verwendet werden, um die eigentliche Datenbank zu verwalten, die einen DbContext oder eine Verbindung sichert. Dies schließt das Erstellen, Löschen und Überprüfen auf Vorhandensein einer Datenbank ein. Beachten Sie, dass das Löschen und Überprüfen auf das Vorhandensein einer Datenbank nur mithilfe einer Verbindung (d. h. ohne vollständigen Kontext) mithilfe der statischen Methoden dieser Klasse durchgeführt werden kann.

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
Vererbung
Database
Attribute

Eigenschaften

CommandTimeout

Ruft den Timeoutwert in Sekunden für alle Kontextvorgänge ab oder legt diese 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. Dies kann dazu führen, dass die Verbindung erstellt wird, wenn sie noch nicht vorhanden ist.

CurrentTransaction

Ruft die Transaktion ab, in der die zugrunde liegende Speicherverbindung eingetragen ist. Ist möglicherweise NULL.

DefaultConnectionFactory
Veraltet.

Die Verbindungsfactory, die beim Erstellen von DbConnection nur aus einem Datenbanknamen oder einer Verbindungszeichenfolge verwendet werden soll.

Log

Legen Sie diese Eigenschaft fest, um die von generierte DbContext SQL für den angegebenen Delegaten zu protokollieren. Wenn Sie sich beispielsweise bei der Konsole anmelden möchten, legen Sie diese Eigenschaft auf fest Write(String).

Methoden

BeginTransaction()

Startet eine Transaktion für die zugrunde liegende Speicherverbindung.

BeginTransaction(IsolationLevel)

Startet eine Transaktion für die zugrunde liegende Speicherverbindung mit der angegebenen Isolationsstufe.

CompatibleWithModel(Boolean)

Ü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. Wenn Sie diese Methode von außerhalb eines Initialisierers aufrufen, wird die Datenbank als nicht initialisiert markiert. Das bedeutet, wenn versucht wird, die Datenbank nach dem Löschen erneut zu verwenden, wird jeder Initialisierersatz erneut ausgeführt und in der Regel versucht, 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 unter Verwendung des angegebenen Datenbanknamens oder der angegebenen Verbindungszeichenfolge auf die gleiche Weise erstellt, wie in der Dokumentation für die DbContext -Klasse beschrieben.

Equals(Object)

Ein instance dieser Klasse wird aus einem DbContext -Objekt abgerufen und kann verwendet werden, um die eigentliche Datenbank zu verwalten, die einen DbContext oder eine Verbindung sichert. Dies schließt das Erstellen, Löschen und Überprüfen auf Vorhandensein einer Datenbank ein. Beachten Sie, dass das Löschen und Überprüfen auf das Vorhandensein einer Datenbank nur mithilfe einer Verbindung (d. h. ohne vollständigen Kontext) mithilfe der statischen Methoden dieser Klasse durchgeführt werden kann.

ExecuteSqlCommand(String, Object[])

Führt den angegebenen DDL-/DML-Befehl für die Datenbank aus.

Wie bei jeder API, die SQL akzeptiert, ist es wichtig, alle Benutzereingaben zu parametrisieren, um sich vor einem SQL-Einschleusungsangriff zu schützen. Sie können Parameterplatzhalter in die SQL-Abfragezeichenfolge einschließen und dann Parameterwerte als zusätzliche Argumente angeben. Alle von Ihnen angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert. Kontext. Database.ExecuteSqlCommand("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativ können Sie auch einen DbParameter erstellen und für SqlQuery bereitstellen. Dadurch können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden. Kontext. 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 jeder API, die SQL akzeptiert, ist es wichtig, alle Benutzereingaben zu parametrisieren, um sich vor einem SQL-Einschleusungsangriff zu schützen. Sie können Parameterplatzhalter in die SQL-Abfragezeichenfolge einschließen und dann Parameterwerte als zusätzliche Argumente angeben. Alle von Ihnen angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert. Kontext. Database.ExecuteSqlCommand("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativ können Sie auch einen DbParameter erstellen und für SqlQuery bereitstellen. Dadurch können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden. Kontext. Database.ExecuteSqlCommand("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, CancellationToken, Object[])

Führt den angegebenen DDL/DML-Befehl für die Datenbank asynchron aus.

Wie bei jeder API, die SQL akzeptiert, ist es wichtig, alle Benutzereingaben zu parametrisieren, um sich vor einem SQL-Einschleusungsangriff zu schützen. Sie können Parameterplatzhalter in die SQL-Abfragezeichenfolge einschließen und dann Parameterwerte als zusätzliche Argumente angeben. Alle von Ihnen angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert. Kontext. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativ können Sie auch einen DbParameter erstellen und für SqlQuery bereitstellen. Dadurch können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden. Kontext. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(String, Object[])

Führt den angegebenen DDL/DML-Befehl für die Datenbank asynchron aus.

Wie bei jeder API, die SQL akzeptiert, ist es wichtig, alle Benutzereingaben zu parametrisieren, um sich vor einem SQL-Einschleusungsangriff zu schützen. Sie können Parameterplatzhalter in die SQL-Abfragezeichenfolge einschließen und dann Parameterwerte als zusätzliche Argumente angeben. Alle von Ihnen angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert. Kontext. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativ können Sie auch einen DbParameter erstellen und für SqlQuery bereitstellen. Dadurch können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden. Kontext. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, CancellationToken, Object[])

Führt den angegebenen DDL/DML-Befehl für die Datenbank asynchron aus.

Wie bei jeder API, die SQL akzeptiert, ist es wichtig, alle Benutzereingaben zu parametrisieren, um sich vor einem SQL-Einschleusungsangriff zu schützen. Sie können Parameterplatzhalter in die SQL-Abfragezeichenfolge einschließen und dann Parameterwerte als zusätzliche Argumente angeben. Alle von Ihnen angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert. Kontext. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativ können Sie auch einen DbParameter erstellen und für SqlQuery bereitstellen. Dadurch können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden. Kontext. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ExecuteSqlCommandAsync(TransactionalBehavior, String, Object[])

Führt den angegebenen DDL/DML-Befehl für die Datenbank asynchron aus.

Wie bei jeder API, die SQL akzeptiert, ist es wichtig, alle Benutzereingaben zu parametrisieren, um sich vor einem SQL-Einschleusungsangriff zu schützen. Sie können Parameterplatzhalter in die SQL-Abfragezeichenfolge einschließen und dann Parameterwerte als zusätzliche Argumente angeben. Alle von Ihnen angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert. Kontext. Database.ExecuteSqlCommandAsync("UPDATE dbo. Posts SET Rating = 5 WHERE Author = @p0", userSuppliedAuthor); Alternativ können Sie auch einen DbParameter erstellen und für SqlQuery bereitstellen. Dadurch können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden. Kontext. 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 unter Verwendung des angegebenen Datenbanknamens oder der angegebenen Verbindungszeichenfolge auf die gleiche Weise erstellt, wie in der Dokumentation für die DbContext -Klasse beschrieben.

GetHashCode()

Ein instance dieser Klasse wird aus einem DbContext -Objekt abgerufen und kann verwendet werden, um die eigentliche Datenbank zu verwalten, die einen DbContext oder eine Verbindung sichert. Dies schließt das Erstellen, Löschen und Überprüfen auf Vorhandensein einer Datenbank ein. Beachten Sie, dass das Löschen und Überprüfen auf das Vorhandensein einer Datenbank nur mithilfe einer Verbindung (d. h. ohne vollständigen Kontext) mithilfe der statischen Methoden dieser Klasse durchgeführt werden kann.

GetType()

Ruft den Type der aktuellen Instanz ab.

Initialize(Boolean)

Führt die für diesen Kontext registrierte IDatabaseInitializer<TContext> aus. Wenn "force" auf true festgelegt ist, wird der Initialisierer unabhängig davon ausgeführt, ob er zuvor ausgeführt wurde oder nicht. 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 nicht bereits für diesen Kontext, das Modell und die Verbindung in dieser App-Domäne ausgeführt wurde. Diese Methode wird in der Regel verwendet, wenn sichergestellt werden muss, dass die Datenbank erstellt und seeded wurde, bevor ein Vorgang gestartet wird, bei dem die verzögerte Durchführung probleme verursacht, z. B. wenn der Vorgang Teil einer Transaktion ist.

SetInitializer<TContext>(IDatabaseInitializer<TContext>)

Legt den Datenbankinitialisierer fest, der für den angegebenen Kontexttyp verwendet werden soll. Der Datenbankinitialisierer wird aufgerufen, wenn der angegebene DbContext Typ zum ersten Mal für den Zugriff auf eine Datenbank verwendet wird. Die Standardstrategie für Code First-Kontexte ist eine instance 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.

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.

ToString()

Ein instance dieser Klasse wird aus einem DbContext -Objekt abgerufen und kann verwendet werden, um die eigentliche Datenbank zu verwalten, die einen DbContext oder eine Verbindung sichert. Dies schließt das Erstellen, Löschen und Überprüfen auf Vorhandensein einer Datenbank ein. Beachten Sie, dass das Löschen und Überprüfen auf das Vorhandensein einer Datenbank nur mithilfe einer Verbindung (d. h. ohne vollständigen Kontext) mithilfe der statischen Methoden dieser Klasse durchgeführt werden kann.

UseTransaction(DbTransaction)

Ermöglicht es dem Benutzer, eine Datenbanktransaktion zu übergeben, die außerhalb des Database Objekts erstellt wurde, wenn das Entity Framework Befehle innerhalb dieser externen Transaktion ausführen soll. Alternativ können Sie null übergeben, um die Kenntnisse des Frameworks über diese Transaktion zu löschen.

Gilt für: