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;
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>
Eine IQueryable<T> , die als Basis der rohen SQL-Abfrage (in der Regel ein DbSet<TEntity>) verwendet werden soll.
- sql
- String
Die rohe SQL-Abfrage.
- parameters
- Object[]
Die Werte, die Parametern zugewiesen werden sollen.
Gibt zurück
Eine IQueryable<T> Darstellung der rohen SQL-Abfrage.
Hinweise
Wenn der Datenbankanbieter das Verfassen in der bereitgestellten SQL-Datei unterstützt, können Sie mithilfe von LINQ-Operatoren über die rohe SQL-Abfrage verfassen: context.Blogs.FromSqlRaw("SELECT * FROM Blogs").OrderBy(b => b.Name).
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 ein DbParameter.
Ü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 FromSql<TEntity>(DbSet<TEntity>, FormattableString) parameter erstellen.
Diese Überladung akzeptiert DbParameter auch Instanzen als Parameterwerte. Zusätzlich zur Verwendung von Positionsplatzhaltern wie oben ({0}) können Sie auch benannte Platzhalter direkt in der SQL-Abfragezeichenfolge verwenden.
Weitere Informationen und Beispiele finden Sie unter Ausführen von unformatierten SQL-Befehlen mit EF Core .