RelationalDatabaseFacadeExtensions.SqlQuery<TResult> Methode

Definition

Erstellt eine LINQ-Abfrage basierend auf einer sql-Rohabfrage, die ein Resultset eines Skalartyps zurückgibt, der vom Datenbankanbieter nativ unterstützt wird.

public static System.Linq.IQueryable<TResult> SqlQuery<TResult> (this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade, FormattableString sql);
static member SqlQuery : Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade * FormattableString -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function SqlQuery(Of TResult) (databaseFacade As DatabaseFacade, sql As FormattableString) As IQueryable(Of TResult)

Typparameter

TResult

Parameter

databaseFacade
DatabaseFacade

Die DatabaseFacade für den Kontext.

sql
FormattableString

Die interpolierte Zeichenfolge, die eine SQL-Abfrage mit Parametern darstellt.

Gibt zurück

IQueryable<TResult>

Ein IQueryable<T> , der die interpolierte Zeichenfolgen-SQL-Abfrage darstellt.

Hinweise

Verwenden DefaultTypeMapping<TScalar>(Action<TypeMappingConfigurationBuilder<TScalar>>) Sie die -Methode, um diese Methode mit einem Rückgabetyp zu verwenden, der vom Datenbankanbieter nicht nativ unterstützt wird.

Das zurückgegebene kann mithilfe von LINQ erstellt werden, um komplexere IQueryable<T> 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 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.

Weitere Informationen und Beispiele finden Sie unter Ausführen von unformatierten SQL-Befehlen mit EF Core .

Gilt für: