Freigeben über


DbSet<TEntity>.SqlQuery-Methode

[Diese Seite bezieht sich auf Entity Framework Version 6. Die neueste Version ist als 'Entity Framework' NuGet-Paket verfügbar. Weitere Informationen zu Entity Framework finden Sie unter msdn.com/data/ef.]

Erstellt eine unformatierte SQL-Abfrage, die Entitäten in dieser Menge zurückgibt. Standardmäßig werden die zurückgegebenen Entitäten vom Kontext nachverfolgt. Diese Einstellung kann durch Aufruf von AsNoTracking für die zurückgegebene DbSqlQuery<TEntity> geändert werden. Beachten Sie, dass die zurückgegebenen Entitäten immer vom Typ für diesen Satz 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 allen APIs, die SQL akzeptieren, müssen Sie darauf achten, alle Benutzereingaben zum Schutz vor SQL-Injection-Angriffen zu parametrisieren. Sie können in der SQL-Abfragezeichenfolge Platzhalter für Parameter einschließen und die Parameterwerte anschließend als zusätzliche Argumente angeben. Alle angegebenen Parameterwerte werden automatisch in einen DbParameter konvertiert. context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); Als Alternative können Sie auch einen DbParameter erstellen und an SqlQuery übergeben. Auf diese Weise können Sie benannte Parameter in der SQL-Abfragezeichenfolge verwenden. context.Blogs.SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

Namespace:  System.Data.Entity
Assembly:  EntityFramework (in EntityFramework.dll)

Syntax

'Declaration
Public Overridable Function SqlQuery ( _
    sql As String, _
    ParamArray parameters As Object() _
) As DbSqlQuery(Of TEntity)
'Usage
Dim instance As DbSet 
Dim sql As String 
Dim parameters As Object()
Dim returnValue As DbSqlQuery(Of TEntity)

returnValue = instance.SqlQuery(sql, parameters)
public virtual DbSqlQuery<TEntity> SqlQuery(
    string sql,
    params Object[] parameters
)
public:
virtual DbSqlQuery<TEntity>^ SqlQuery(
    String^ sql, 
    ... array<Object^>^ parameters
)
abstract SqlQuery : 
        sql:string * 
        parameters:Object[] -> DbSqlQuery<'TEntity> 
override SqlQuery : 
        sql:string * 
        parameters:Object[] -> DbSqlQuery<'TEntity> 
public function SqlQuery(
    sql : String, 
    ... parameters : Object[]
) : DbSqlQuery<TEntity>

Parameter

  • parameters
    Typ: System.Object[]
    Die Parameter, die auf die SQL-Abfragezeichenfolge angewendet werden sollen. Werden Ausgabeparameter verwendet, sind deren Werte erst nach vollständigem Lesen der Ergebnisse verfügbar. Dies liegt an dem zugrundeliegenden Verhalten von DbDataReader; weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?LinkID=398589.

Rückgabewert

Typ: System.Data.Entity.Infrastructure.DbSqlQuery<TEntity>
Ein DbSqlQuery<TEntity>-Objekt, das die Abfrage ausführt, wenn es aufgelistet wird.

Siehe auch

Verweis

DbSet<TEntity> Klasse

System.Data.Entity-Namespace