RelationalDatabaseFacadeExtensions.SqlQueryRaw<TResult> 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.
Erstellt eine LINQ-Abfrage basierend auf einer SQL-Rohabfrage, die einen Resultset eines skalaren Typs zurückgibt, der vom Datenbankanbieter nativ unterstützt wird.
public static System.Linq.IQueryable<TResult> SqlQueryRaw<TResult> (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, string sql, params object[] parameters);
static member SqlQueryRaw : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * string * obj[] -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function SqlQueryRaw(Of TResult) (databaseFacade As DatabaseFacade, sql As String, ParamArray parameters As Object()) As IQueryable(Of TResult)
Typparameter
- TResult
Parameter
- databaseFacade
- DatabaseFacade
Der DatabaseFacade für den Kontext.
- sql
- String
Die rohe SQL-Abfrage.
- parameters
- Object[]
Die Werte, die Parametern zugewiesen werden sollen.
Gibt zurück
Ein IQueryable<T> , der die SQL-Rohabfrage darstellt.
Hinweise
Verwenden Sie die -Methode, um diese Methode mit einem Rückgabetyp zu verwenden, DefaultTypeMapping<TScalar>(Action<TypeMappingConfigurationBuilder<TScalar>>) der vom Datenbankanbieter nicht nativ unterstützt wird.
Das zurückgegebene IQueryable<T> kann mithilfe von LINQ zusammengesetzt werden, um komplexere Abfragen zu erstellen.
Beachten Sie, dass diese Methode keine Transaktion startet. Um diese Methode mit einer Transaktion zu verwenden, rufen Sie zuerst oder auf BeginTransaction(DatabaseFacade, IsolationLevel)UseTransaction.
Wie bei jeder API, die SQL akzeptiert, ist es wichtig, alle Benutzereingaben zu parametrisieren, um 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.
Übergeben Sie jedoch niemals eine verkettete oder interpolierte Zeichenfolge ($""
) mit nicht überprüften vom Benutzer bereitgestellten Werten an diese Methode. Auf diese Weise kann Ihre Anwendung SQL-Einschleusungsangriffen ausgesetzt sein. Um die interpolierte Zeichenfolgensyntax zu verwenden, sollten Sie zum Erstellen von Parametern verwenden SqlQuery<TResult>(DatabaseFacade, FormattableString) .
Weitere Informationen und Beispiele finden Sie unter Ausführen von SQL-Raw-Befehlen mit EF Core .
Gilt für:
Entity Framework