RelationalDatabaseFacadeExtensions.ExecuteSqlRaw Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>) |
Führt die angegebene SQL-Anweisung für die Datenbank aus und gibt die Anzahl der betroffenen Zeilen zurück. |
| ExecuteSqlRaw(DatabaseFacade, String, Object[]) |
Führt die angegebene SQL-Anweisung für die Datenbank aus und gibt die Anzahl der betroffenen Zeilen zurück. |
ExecuteSqlRaw(DatabaseFacade, String, IEnumerable<Object>)
Führt die angegebene SQL-Anweisung für die Datenbank aus und gibt die Anzahl der betroffenen Zeilen zurück.
public static int ExecuteSqlRaw(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, System.Collections.Generic.IEnumerable<object?> parameters);
public static int ExecuteSqlRaw(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, System.Collections.Generic.IEnumerable<object> parameters);
static member ExecuteSqlRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * seq<obj> -> int
<Extension()>
Public Function ExecuteSqlRaw (databaseFacade As DatabaseFacade, sql As String, parameters As IEnumerable(Of Object)) As Integer
Parameter
- databaseFacade
- DatabaseFacade
Der DatabaseFacade für den Kontext.
- sql
- String
Die auszuführende SQL-Anweisung.
- parameters
- IEnumerable<Object>
Parameter, die mit SQL verwendet werden sollen.
Gibt zurück
Die Anzahl der betroffenen Zeilen.
Hinweise
Beachten Sie, dass diese Methode keine Transaktion startet. Um diese Methode mit einer Transaktion zu verwenden, rufen Sie zuerst auf BeginTransaction(DatabaseFacade, IsolationLevel) oder UseTransaction.
Beachten Sie, dass die aktuelle ExecutionStrategy Methode nicht von dieser Methode verwendet wird, da sql möglicherweise nicht idempotent ist und nicht in einer Transaktion ausgeführt wird. Eine ExecutionStrategy kann explizit verwendet werden, um sicherzustellen, dass auch eine Transaktion verwendet wird, wenn die SQL nicht idempotent ist.
Wie bei jeder API, die SQL akzeptiert, ist es wichtig, jede Benutzereingabe zu parametrisieren, um vor einem SQL-Einfügungsangriff zu schützen. Sie können Parameterplatzhalter in die SQL-Abfragezeichenfolge einschließen und dann Parameterwerte als zusätzliche Argumente angeben. Alle parameterwerte, die Sie angeben, werden automatisch in einen DbParameter konvertiert.
Übergeben Sie jedoch niemals eine verkettete oder interpolierte Zeichenfolge ($"") mit nicht überprüften vom Benutzer bereitgestellten Werten an diese Methode. Dies kann Ihre Anwendung für SQL-Einfüfungsangriffe verfügbar machen. Wenn Sie die interpolierte Zeichenfolgensyntax verwenden möchten, sollten Sie ExecuteSql(DatabaseFacade, FormattableString) parameter erstellen.
Weitere Informationen und Beispiele finden Sie unter Ausführen von unformatierten SQL-Befehlen mit EF Core .
Gilt für:
ExecuteSqlRaw(DatabaseFacade, String, Object[])
Führt die angegebene SQL-Anweisung für die Datenbank aus und gibt die Anzahl der betroffenen Zeilen zurück.
public static int ExecuteSqlRaw(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object?[] parameters);
public static int ExecuteSqlRaw(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object[] parameters);
static member ExecuteSqlRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * obj[] -> int
<Extension()>
Public Function ExecuteSqlRaw (databaseFacade As DatabaseFacade, sql As String, ParamArray parameters As Object()) As Integer
Parameter
- databaseFacade
- DatabaseFacade
Der DatabaseFacade für den Kontext.
- sql
- String
Die auszuführende SQL-Anweisung.
- parameters
- Object[]
Parameter, die mit SQL verwendet werden sollen.
Gibt zurück
Die Anzahl der betroffenen Zeilen.
Hinweise
Beachten Sie, dass diese Methode keine Transaktion startet. Um diese Methode mit einer Transaktion zu verwenden, rufen Sie zuerst auf BeginTransaction(DatabaseFacade, IsolationLevel) oder UseTransaction.
Beachten Sie, dass die aktuelle ExecutionStrategy Methode nicht von dieser Methode verwendet wird, da sql möglicherweise nicht idempotent ist und nicht in einer Transaktion ausgeführt wird. Eine ExecutionStrategy kann explizit verwendet werden, um sicherzustellen, dass auch eine Transaktion verwendet wird, wenn die SQL nicht idempotent ist.
Wie bei jeder API, die SQL akzeptiert, ist es wichtig, jede Benutzereingabe zu parametrisieren, um vor einem SQL-Einfügungsangriff zu schützen. Sie können Parameterplatzhalter in die SQL-Abfragezeichenfolge einschließen und dann Parameterwerte als zusätzliche Argumente angeben. Alle parameterwerte, die Sie angeben, werden automatisch in einen DbParameter konvertiert.
Übergeben Sie jedoch niemals eine verkettete oder interpolierte Zeichenfolge ($"") mit nicht überprüften vom Benutzer bereitgestellten Werten an diese Methode. Dies kann Ihre Anwendung für SQL-Einfüfungsangriffe verfügbar machen. Wenn Sie die interpolierte Zeichenfolgensyntax verwenden möchten, sollten Sie ExecuteSql(DatabaseFacade, FormattableString) parameter erstellen.
Weitere Informationen und Beispiele finden Sie unter Ausführen von unformatierten SQL-Befehlen mit EF Core .