ObjectContext.ExecuteStoreQuery Méthode

Définition

Surcharges

ExecuteStoreQuery<TElement>(String, Object[])

Exécute directement sur la source de données une requête qui retourne une séquence de résultats typés.

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

Exécute directement une requête sur la source de données et retourne une séquence de résultats typés. Spécifiez le jeu d'entités et l'option de fusion pour que les résultats de la requête puissent être suivis sous forme d'entités.

ExecuteStoreQuery<TElement>(String, Object[])

Exécute directement sur la source de données une requête qui retourne une séquence de résultats typés.

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)

Paramètres de type

TElement

Type des données retournées.

Paramètres

commandText
String

Commande à exécuter dans le langage natif de la source de données.

parameters
Object[]

Tableau de paramètres à passer à la commande.

Retours

ObjectResult<TElement>

Énumération d'objets de type TElement.

Remarques

La ExecuteStoreQuery méthode utilise la connexion existante pour exécuter une commande arbitraire directement sur la source de données. La commande de stockage est exécutée dans le contexte de la transaction actuelle, si une telle transaction existe.

Appeler la méthode ExecuteStoreQuery revient à appeler la méthode ExecuteReader de la classe DbCommand. Seulement, quand la méthode ExecuteStoreQuery retourne des entités, la méthode ExecuteReader retourne les valeurs de propriété de l'objet DbDataReader.

Appelez le ExecuteStoreQuery avec le nom du jeu d’entités spécifié, si vous souhaitez que les résultats soient suivis.

Appelez la Translate méthode pour traduire un DbDataReader en objets d’entité lorsque le lecteur contient des lignes de données mappées au type d’entité spécifié.

L'utilisation des commandes paramétrées aide à se protéger des attaques par injection de code SQL, dans lesquelles un attaquant « injecte » une commande dans une instruction SQL qui compromet la sécurité sur le serveur. Les commandes paramétrables protègent contre une attaque par injection de code SQL en garantissant que les valeurs reçues d’une source externe sont passées en tant que valeurs uniquement et ne font pas partie de l’instruction SQL. Par conséquent, les commandes SQL insérées dans une valeur ne sont pas exécutées au niveau de la source de données. Au lieu de cela, les valeurs sont évaluées uniquement comme valeurs de paramètre. En plus des avantages en matière de sécurité, les commandes paramétrables fournissent une méthode pratique pour organiser les valeurs passées avec une instruction SQL ou à une procédure stockée.

La valeur de parameters peut être un tableau d'objets DbParameter ou un tableau de valeurs de paramètres. Si seules des valeurs sont fournies, un tableau d’objets DbParameter est créé en fonction de l’ordre des valeurs dans le tableau.

Pour plus d'informations, consultez les pages suivantes :

Exécution directe des commandes de magasin et

Comment : exécuter directement les commandes sur la source de données

S’applique à

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

Exécute directement une requête sur la source de données et retourne une séquence de résultats typés. Spécifiez le jeu d'entités et l'option de fusion pour que les résultats de la requête puissent être suivis sous forme d'entités.

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)

Paramètres de type

TEntity

Type d'entité des données retournées.

Paramètres

commandText
String

Commande à exécuter dans le langage natif de la source de données.

entitySetName
String

Jeu d'entités du type TEntity. Si aucun nom de jeu d'entités n'est fourni, les résultats ne seront pas suivis.

mergeOption
MergeOption

Objet MergeOption à utiliser lors de l'exécution de la requête. La valeur par défaut est AppendOnly.

parameters
Object[]

Tableau de paramètres à passer à la commande.

Retours

ObjectResult<TEntity>

Énumération d'objets de type TResult.

Remarques

La ExecuteStoreQuery méthode utilise la connexion existante pour exécuter une commande arbitraire directement sur la source de données. La commande de stockage est exécutée dans le contexte de la transaction actuelle, si une telle transaction existe.

Appeler la méthode ExecuteStoreQuery revient à appeler la méthode ExecuteReader de la classe DbCommand. Seulement, quand la méthode ExecuteStoreQuery retourne des entités, la méthode ExecuteReader retourne les valeurs de propriété de l'objet DbDataReader.

Spécifiez le nom du jeu d’entités si vous souhaitez que les résultats soient suivis en tant qu’entités.

Appeler Translate une méthode pour traduire un DbDataReader en objets d’entité lorsque le lecteur contient des lignes de données mappées au type d’entité spécifié.

L'utilisation des commandes paramétrées aide à se protéger des attaques par injection de code SQL, dans lesquelles un attaquant « injecte » une commande dans une instruction SQL qui compromet la sécurité sur le serveur. Les commandes paramétrables protègent contre une attaque par injection de code SQL en garantissant que les valeurs reçues d’une source externe sont passées en tant que valeurs uniquement et ne font pas partie de l’instruction SQL. Par conséquent, les commandes SQL insérées dans une valeur ne sont pas exécutées au niveau de la source de données. Au lieu de cela, les valeurs sont évaluées uniquement comme valeurs de paramètre. En plus des avantages en matière de sécurité, les commandes paramétrables fournissent une méthode pratique pour organiser les valeurs passées avec une instruction SQL ou à une procédure stockée.

La valeur de parameters peut être un tableau d'objets DbParameter ou un tableau de valeurs de paramètres. Si seules des valeurs sont fournies, un tableau d’objets DbParameter est créé en fonction de l’ordre des valeurs dans le tableau.

Pour plus d'informations, consultez les pages suivantes :

Exécution directe des commandes de magasin et

Comment : exécuter directement les commandes sur la source de données

S’applique à