Freigeben über


DbSet.SqlQuery(String, Object[]) Methode

Definition

Erstellt eine unformatierte SQL-Abfrage, die Entitäten in diesem Satz zurückgibt. Standardmäßig werden die zurückgegebenen Entitäten vom Kontext nachverfolgt. dies kann durch Aufrufen von AsNoTracking für das DbRawSqlQuery zurückgegebene geändert werden. Beachten Sie, dass die zurückgegebenen Entitäten immer vom Typ für diese Gruppe und nie von einem abgeleiteten Typ sind. Wenn die abgefragten Tabellen möglicherweise Daten für andere Entitätstypen enthalten, muss die SQL-Abfrage entsprechend geschrieben werden, um sicherzustellen, dass nur Entitäten des richtigen Typs zurückgegeben werden.

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. Kontext. Set(typeof(Blog)). SqlQuery("SELECT * FROM dbo. Beiträge WHERE Author = @p0", userSuppliedAuthor); Alternativ können Sie auch einen DbParameter erstellen und an SqlQuery bereitstellen. Dadurch können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden. Kontext. Set(typeof(Blog)). SqlQuery("SELECT * FROM dbo. Beiträge WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

public virtual System.Data.Entity.Infrastructure.DbSqlQuery SqlQuery (string sql, params object[] parameters);
abstract member SqlQuery : string * obj[] -> System.Data.Entity.Infrastructure.DbSqlQuery
override this.SqlQuery : string * obj[] -> System.Data.Entity.Infrastructure.DbSqlQuery
Public Overridable Function SqlQuery (sql As String, ParamArray parameters As Object()) As DbSqlQuery

Parameter

sql
String

Die SQL-Abfragezeichenfolge.

parameters
Object[]

Die Parameter, die auf die SQL-Abfragezeichenfolge angewendet werden sollen. Wenn Ausgabeparameter verwendet werden, sind ihre Werte erst verfügbar, wenn die Ergebnisse vollständig gelesen wurden. Dies ist auf das zugrunde liegende Verhalten von DbDataReader zurückzuführen. Weitere Informationen finden Sie unter http://go.microsoft.com/fwlink/?LinkID=398589 .

Gibt zurück

Ein DbSqlQuery -Objekt, das die Abfrage ausführt, wenn sie aufgezählt wird.

Gilt für: