RelationalQueryableExtensions.FromSqlRaw<TEntity> 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 unformatierten SQL-Abfrage.
public static System.Linq.IQueryable<TEntity> FromSqlRaw<TEntity> (this Microsoft.EntityFrameworkCore.DbSet<TEntity> source, string sql, params object[] parameters) where TEntity : class;
static member FromSqlRaw : Microsoft.EntityFrameworkCore.DbSet<'Entity (requires 'Entity : null)> * string * obj[] -> System.Linq.IQueryable<'Entity (requires 'Entity : null)> (requires 'Entity : null)
<Extension()>
Public Function FromSqlRaw(Of TEntity As Class) (source As DbSet(Of TEntity), sql As String, ParamArray parameters As Object()) As IQueryable(Of TEntity)
Typparameter
- TEntity
Der Typ der Elemente von source
.
Parameter
- source
- DbSet<TEntity>
Ein IQueryable<T> , der als Basis der unformatierten SQL-Abfrage verwendet werden soll (in der Regel ).DbSet<TEntity>
- sql
- String
Die unformatierte SQL-Abfrage.
- parameters
- Object[]
Die Werte, die Parametern zugewiesen werden sollen.
Gibt zurück
Ein IQueryable<T> , der die unformatierte SQL-Abfrage darstellt.
Hinweise
Wenn der Datenbankanbieter das Komponieren für die angegebene SQL unterstützt, können Sie mithilfe von LINQ-Operatoren auf der Grundlage der SQL-Rohabfrage erstellen: context.Blogs.FromSqlRaw("SELECT * FROM Blogs").OrderBy(b => b.Name)
.
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. Sämtliche von Ihnen bereitgestellte 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. Dies kann Ihre Anwendung angriffen durch SQL-Einschleusung aussetzen. Um die interpolierte Zeichenfolgensyntax zu verwenden, sollten Sie verwenden FromSql<TEntity>(DbSet<TEntity>, FormattableString) , um Parameter zu erstellen.
Diese Überladung akzeptiert DbParameter auch Instanzen als Parameterwerte. Zusätzlich zur Verwendung von Positionsplatzhaltern wie oben ({0}
) können Sie benannte Platzhalter auch direkt in der SQL-Abfragezeichenfolge verwenden.
Weitere Informationen und Beispiele finden Sie unter Ausführen von unformatierten SQL-Befehlen mit EF Core .
Gilt für:
Entity Framework