Condividi tramite


Metodo DbSet.SqlQuery

[Questa pagina è specifica della versione 6 di Entity Framework. La versione più recente è disponibile come pacchetto NuGet per "Entity Framework". Per ulteriori informazioni su Entity Framework, vedere la pagina msdn.com/data/ef.]

Crea una query SQL non elaborata che restituirà le entità in questo set. Per impostazione predefinita, le entità restituite vengono rilevate dal contesto. Tale impostazione può essere modificata chiamando AsNoTracking nell'oggetto DbRawSqlQuery restituito. Si noti che le entità restituite sono sempre del tipo per questo set e 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 con qualsiasi API che accetta SQL, è importante parametrizzare un input utente in modo da fornire protezione da un attacco SQL injection. È possibile includere i segnaposto dei parametri nella stringa di query SQL e quindi fornire i valori dei parametri come argomenti aggiuntivi. Tutti i valori dei parametri forniti verranno convertiti automaticamente in DbParameter. context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); in alternativa, è inoltre possibile costruire un oggetto DbParameter e fornirlo a SqlQuery. In questo modo è possibile utilizzare i parametri denominati nella stringa di query SQL. context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));

Spazio dei nomi:  System.Data.Entity
Assembly:  EntityFramework (in EntityFramework.dll)

Sintassi

'Dichiarazione
Public Overridable Function SqlQuery ( _
    sql As String, _
    ParamArray parameters As Object() _
) As DbSqlQuery
'Utilizzo
Dim instance As DbSet 
Dim sql As String 
Dim parameters As Object()
Dim returnValue As DbSqlQuery 

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

Parametri

  • parameters
    Tipo: System.Object[]
    Parametri da applicare alla stringa di query SQL. Se si usano parametri di output, i relativi valori non saranno disponibili fino alla lettura completa dei risultati. Questo è dovuto al comportamento sottostante di DbDataReader. Per altre informazioni, vedi https://go.microsoft.com/fwlink/?LinkID=398589.

Valore restituito

Tipo: System.Data.Entity.Infrastructure.DbSqlQuery
Oggetto DbSqlQuery che eseguirà la query quando viene enumerato.

Vedere anche

Riferimento

DbSet Classe

Spazio dei nomi System.Data.Entity