DataContext.ExecuteQuery Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
| Nom | Description |
|---|---|
| ExecuteQuery(Type, String, Object[]) |
Exécute des requêtes SQL directement sur la base de données. |
| ExecuteQuery<TResult>(String, Object[]) |
Exécute des requêtes SQL directement sur la base de données et retourne des objets. |
ExecuteQuery(Type, String, Object[])
Exécute des requêtes SQL directement sur la base de données.
public:
System::Collections::IEnumerable ^ ExecuteQuery(Type ^ elementType, System::String ^ query, ... cli::array <System::Object ^> ^ parameters);
public System.Collections.IEnumerable ExecuteQuery(Type elementType, string query, params object[] parameters);
member this.ExecuteQuery : Type * string * obj[] -> System.Collections.IEnumerable
Public Function ExecuteQuery (elementType As Type, query As String, ParamArray parameters As Object()) As IEnumerable
Paramètres
- elementType
- Type
Type de la IEnumerable<T> valeur à renvoyer.
L’algorithme de correspondance des colonnes dans le résultat de la requête à des champs ou des propriétés de l’objet fonctionne comme suit :
Si un champ ou une propriété est mappé à un nom de colonne particulier, ce nom de colonne est attendu dans le jeu de résultats.
Si un champ ou une propriété n’est pas mappé, une colonne portant le même nom que le champ ou la propriété est attendue dans le jeu de résultats.
La comparaison est effectuée en recherchant d’abord une correspondance sensible à la casse. Si cette correspondance est introuvable, une recherche suivante se produit pour une correspondance sans respect de la casse.
La requête doit retourner tous les champs et propriétés suivis de l’objet (sauf celles chargées sur une base différée) lorsque toutes les conditions suivantes sont remplies :
T est une entité explicitement suivie par le DataContext.
ObjectTrackingEnabled a la valeur true.
L’entité a une clé primaire.
Sinon, une exception est levée.
- query
- String
Requête SQL à exécuter.
- parameters
- Object[]
Tableau de paramètres à passer à la commande. Notez le comportement suivant :
Si le nombre d’objets du tableau est inférieur au nombre le plus élevé identifié dans la chaîne de commande, une exception est levée.
Si le tableau contient des objets qui ne sont pas référencés dans la chaîne de commande, aucune exception n’est levée.
Si un paramètre est null, il est converti en DBNull.Value.
Retours
Collection IEnumerable<T> d’objets retournés par la requête.
S’applique à
ExecuteQuery<TResult>(String, Object[])
Exécute des requêtes SQL directement sur la base de données et retourne des objets.
public:
generic <typename TResult>
System::Collections::Generic::IEnumerable<TResult> ^ ExecuteQuery(System::String ^ query, ... cli::array <System::Object ^> ^ parameters);
public System.Collections.Generic.IEnumerable<TResult> ExecuteQuery<TResult>(string query, params object[] parameters);
member this.ExecuteQuery : string * obj[] -> seq<'Result>
Public Function ExecuteQuery(Of TResult) (query As String, ParamArray parameters As Object()) As IEnumerable(Of TResult)
Paramètres de type
- TResult
Type des éléments de la collection retournée.
Paramètres
- query
- String
Requête SQL à exécuter.
- parameters
- Object[]
Tableau de paramètres à passer à la commande. Notez le comportement suivant :
Si le nombre d’objets du tableau est inférieur au nombre le plus élevé identifié dans la chaîne de commande, une exception est levée.
Si le tableau contient des objets qui ne sont pas référencés dans la chaîne de commande, aucune exception n’est levée.
Si un paramètre a la valeur Null, il est converti en DBNull.Value.
Retours
Collection d’objets retournés par la requête.
Exemples
L’exemple suivant montre une utilisation pour cette méthode :
var customers = db.ExecuteQuery<Customer>(@"SELECT CustomerID, CompanyName, ContactName, ContactTitle,
Address, City, Region, PostalCode, Country, Phone, Fax
FROM dbo.Customers
WHERE City = {0}", "London");
foreach (Customer c in customers)
Console.WriteLine(c.ContactName);
Dim customers = db.ExecuteQuery(Of Customer)("SELECT CustomerID, _
CompanyName, ContactName, ContactTitle, _
Address, City, Region, PostalCode, Country, Phone, Fax _
FROM dbo.Customers _
WHERE City = {0}", "London")
For Each c As Customer In customers
Console.WriteLine(c.ContactName)
Next
Remarques
Cette méthode est un mécanisme pass-through pour les cas où LINQ to SQL ne fournit pas de scénario particulier.
L’algorithme de correspondance des colonnes dans le résultat de la requête à des champs et des propriétés dans l’objet fonctionne comme suit :
Si un champ ou une propriété est mappé à un nom de colonne particulier, ce nom de colonne est attendu dans le jeu de résultats.
Si un champ ou une propriété n’est pas mappé, une colonne portant le même nom que le champ ou la propriété est attendue dans le jeu de résultats.
La comparaison est effectuée en recherchant d’abord une correspondance sensible à la casse. Si une telle correspondance n’est pas trouvée, une recherche suivante se produit pour une correspondance sans respect de la casse.
La requête doit retourner tous les champs et propriétés suivis de l’objet (à part celles soumises au chargement différé) lorsque toutes les valeurs suivantes sont vraies :
S’il s’agit
<T>d’une entité explicitement suivie par le DataContext.ObjectTrackingEnabled a la valeur true.
L’entité a une clé primaire.
Sinon, une exception est levée.
Dans tous les autres cas, la requête peut récupérer uniquement un sous-ensemble des champs et propriétés suivis de l’objet.