ObjectContext.ExecuteStoreQuery Metodo

Definizione

Overload

ExecuteStoreQuery<TElement>(String, Object[])

Esegue una query direttamente sull'origine dati che restituisce una sequenza di risultati tipizzati.

ExecuteStoreQuery<TEntity>(String, String, MergeOption, Object[])

Esegue una query direttamente sull'origine dati e restituisce una sequenza di risultati tipizzati. Specificare il set di entità e l'opzione di unione in modo da poter rilevare i risultati della query come entità.

ExecuteStoreQuery<TElement>(String, Object[])

Esegue una query direttamente sull'origine dati che restituisce una sequenza di risultati tipizzati.

public:
generic <typename TElement>
 System::Data::Objects::ObjectResult<TElement> ^ ExecuteStoreQuery(System::String ^ commandText, ... cli::array <System::Object ^> ^ parameters);
public System.Data.Objects.ObjectResult<TElement> ExecuteStoreQuery<TElement> (string commandText, params object[] parameters);
member this.ExecuteStoreQuery : string * obj[] -> System.Data.Objects.ObjectResult<'Element>
Public Function ExecuteStoreQuery(Of TElement) (commandText As String, ParamArray parameters As Object()) As ObjectResult(Of TElement)

Parametri di tipo

TElement

Tipo dei dati restituiti.

Parametri

commandText
String

Comando da eseguire, nel linguaggio nativo dell'origine dati.

parameters
Object[]

Matrice di parametri da passare al comando.

Restituisce

ObjectResult<TElement>

Enumerazione di oggetti di tipo TElement.

Commenti

Il ExecuteStoreQuery metodo usa la connessione esistente per eseguire un comando arbitrario direttamente sull'origine dati. Il comando di archiviazione viene eseguito nel contesto della transazione corrente, se tale transazione esiste.

La chiamata al metodo ExecuteStoreQuery equivale alla chiamata al metodo ExecuteReader della classe DbCommand. Solo mediante il metodo ExecuteStoreQuery vengono restituite le entità mentre mediante il metodo ExecuteReader vengono restituiti i valori di proprietà dell'oggetto DbDataReader.

Chiamare con ExecuteStoreQuery il nome del set di entità specificato, se si vuole tenere traccia dei risultati.

Chiamare il Translate metodo per convertire un DbDataReader oggetto in oggetti entità quando il lettore contiene righe di dati che eseguono il mapping al tipo di entità specificato.

L'uso di comandi con parametri consente di salvaguardarsi da attacchi SQL injection, un cui un utente non autorizzato inserisce in un'istruzione SQL un comando che compromette la sicurezza del server. I comandi con parametri proteggono da un attacco SQL injection garantendo che i valori ricevuti da un'origine esterna vengano passati solo come valori e non come parte dell'istruzione SQL. Di conseguenza, i comandi SQL inseriti in un valore non vengono eseguiti nell'origine dati. Verranno invece valutati solo come un valore del parametro. Oltre ai vantaggi della sicurezza, i comandi con parametri forniscono un metodo pratico per organizzare i valori passati con un'istruzione SQL o a una stored procedure.

Il valore parameters può essere una matrice di oggetti DbParameter o una matrice di valori dei parametri. Se vengono forniti solo valori, viene creata una matrice di DbParameter oggetti in base all'ordine dei valori nella matrice.

Per altre informazioni, vedere:

Esecuzione diretta dei comandi di archiviazione e

Procedura: eseguire comandi direttamente in un'origine dati

Si applica a

ExecuteStoreQuery<TEntity>(String, String, MergeOption, Object[])

Esegue una query direttamente sull'origine dati e restituisce una sequenza di risultati tipizzati. Specificare il set di entità e l'opzione di unione in modo da poter rilevare i risultati della query come entità.

public:
generic <typename TEntity>
 System::Data::Objects::ObjectResult<TEntity> ^ ExecuteStoreQuery(System::String ^ commandText, System::String ^ entitySetName, System::Data::Objects::MergeOption mergeOption, ... cli::array <System::Object ^> ^ parameters);
public System.Data.Objects.ObjectResult<TEntity> ExecuteStoreQuery<TEntity> (string commandText, string entitySetName, System.Data.Objects.MergeOption mergeOption, params object[] parameters);
member this.ExecuteStoreQuery : string * string * System.Data.Objects.MergeOption * obj[] -> System.Data.Objects.ObjectResult<'Entity>
Public Function ExecuteStoreQuery(Of TEntity) (commandText As String, entitySetName As String, mergeOption As MergeOption, ParamArray parameters As Object()) As ObjectResult(Of TEntity)

Parametri di tipo

TEntity

Tipo di entità dei dati restituiti.

Parametri

commandText
String

Comando da eseguire, nel linguaggio nativo dell'origine dati.

entitySetName
String

Set di entità del tipo TEntity. Se non viene fornito un nome del set di entità, i risultati non verranno rilevati.

mergeOption
MergeOption

Oggetto MergeOption da utilizzare quando viene eseguita la query. Il valore predefinito è AppendOnly.

parameters
Object[]

Matrice di parametri da passare al comando.

Restituisce

ObjectResult<TEntity>

Enumerazione di oggetti di tipo TResult.

Commenti

Il ExecuteStoreQuery metodo usa la connessione esistente per eseguire un comando arbitrario direttamente sull'origine dati. Il comando di archiviazione viene eseguito nel contesto della transazione corrente, se tale transazione esiste.

La chiamata al metodo ExecuteStoreQuery equivale alla chiamata al metodo ExecuteReader della classe DbCommand. Solo mediante il metodo ExecuteStoreQuery vengono restituite le entità mentre mediante il metodo ExecuteReader vengono restituiti i valori di proprietà dell'oggetto DbDataReader.

Specificare il nome del set di entità, se si vuole che i risultati vengano rilevati come entità.

Chiamare Translate il metodo per convertire un DbDataReader oggetto in oggetti entità quando il lettore contiene righe di dati che eseguono il mapping al tipo di entità specificato.

L'uso di comandi con parametri consente di salvaguardarsi da attacchi SQL injection, un cui un utente non autorizzato inserisce in un'istruzione SQL un comando che compromette la sicurezza del server. I comandi con parametri proteggono da un attacco SQL injection garantendo che i valori ricevuti da un'origine esterna vengano passati solo come valori e non come parte dell'istruzione SQL. Di conseguenza, i comandi SQL inseriti in un valore non vengono eseguiti nell'origine dati. Verranno invece valutati solo come un valore del parametro. Oltre ai vantaggi della sicurezza, i comandi con parametri forniscono un metodo pratico per organizzare i valori passati con un'istruzione SQL o a una stored procedure.

Il valore parameters può essere una matrice di oggetti DbParameter o una matrice di valori dei parametri. Se vengono forniti solo valori, viene creata una matrice di DbParameter oggetti in base all'ordine dei valori nella matrice.

Per altre informazioni, vedere:

Esecuzione diretta dei comandi di archiviazione e

Procedura: eseguire comandi direttamente in un'origine dati

Si applica a