Condividi tramite


DbSet<TEntity>.SqlQuery(String, Object[]) Metodo

Definizione

Crea una query SQL non elaborata che restituirà le entità in questo set. Per impostazione predefinita, le entità restituite vengono rilevate dal contesto; questa modifica può essere modificata chiamando AsNoTracking sul DbSqlQuery<TEntity> restituito. Si noti che le entità restituite sono sempre del tipo per questo set e non sono mai di un tipo derivato. Se la tabella o le tabelle su cui è stata eseguita una query possono contenere dati per altri tipi di entità, è necessario che la query SQL venga scritta in modo appropriato per garantire che vengano restituite solo le entità del tipo corretto.

Come per qualsiasi API che accetta SQL, è importante parametrizzare qualsiasi input utente da proteggere da un attacco SQL injection. È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi specificare i valori dei parametri come argomenti aggiuntivi. Tutti i valori dei parametri forniti verranno convertiti automaticamente in dbParameter. Contesto. Blogs.SqlQuery("SELECT * FROM dbo. Post WHERE Author = @p0", userSuppliedAuthor); In alternativa, è anche possibile costruire un dbParameter e specificarlo a SqlQuery. In questo modo è possibile usare parametri denominati nella stringa di query SQL. Contesto. Blogs.SqlQuery("SELECT * FROM dbo. Post WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

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

Parametri

sql
String

Stringa di query SQL.

parameters
Object[]

Parametri da applicare alla stringa di query SQL. Se vengono usati parametri di output, i valori non saranno disponibili fino a quando i risultati non sono stati letti completamente. Questo è dovuto al comportamento sottostante di DbDataReader, vedere http://go.microsoft.com/fwlink/?LinkID=398589 per altri dettagli.

Restituisce

Oggetto DbSqlQuery<TEntity> che eseguirà la query quando viene enumerato.

Si applica a