DataContext.ExecuteQuery Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Overloads
| Name | Description |
|---|---|
| ExecuteQuery(Type, String, Object[]) |
Hiermee worden SQL-query's rechtstreeks op de database uitgevoerd. |
| ExecuteQuery<TResult>(String, Object[]) |
Hiermee worden SQL-query's rechtstreeks op de database uitgevoerd en worden objecten geretourneerd. |
ExecuteQuery(Type, String, Object[])
Hiermee worden SQL-query's rechtstreeks op de database uitgevoerd.
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
Parameters
- elementType
- Type
Het type dat IEnumerable<T> moet worden geretourneerd.
Het algoritme voor het vergelijken van kolommen in het resultaat van de query naar velden of eigenschappen in het object werkt als volgt:
Als een veld of eigenschap is toegewezen aan een bepaalde kolomnaam, wordt die kolomnaam verwacht in de resultatenset.
Als een veld of eigenschap niet is toegewezen, wordt een kolom met dezelfde naam als het veld of de eigenschap verwacht in de resultatenset.
De vergelijking wordt uitgevoerd door eerst naar een hoofdlettergevoelige overeenkomst te zoeken. Als deze overeenkomst niet wordt gevonden, treedt er een volgende zoekopdracht op voor een niet-hoofdlettergevoelige overeenkomst.
De query moet alle bijgehouden velden en eigenschappen van het object retourneren (behalve de velden die op een uitgestelde basis worden geladen) wanneer aan alle volgende voorwaarden wordt voldaan:
T is een entiteit die expliciet wordt bijgehouden door de DataContext.
ObjectTrackingEnabled is true.
De entiteit heeft een primaire sleutel.
Anders wordt er een uitzondering gegenereerd.
- query
- String
De SQL-query die moet worden uitgevoerd.
- parameters
- Object[]
De matrix met parameters die moeten worden doorgegeven aan de opdracht. Let op het volgende gedrag:
Als het aantal objecten in de matrix kleiner is dan het hoogste getal dat in de opdrachtreeks wordt geïdentificeerd, wordt er een uitzondering gegenereerd.
Als de matrix objecten bevat waarnaar niet wordt verwezen in de opdrachtreeks, wordt er geen uitzondering gegenereerd.
Als een parameter is null, wordt deze geconverteerd naar DBNull.Value.
Retouren
Een IEnumerable<T> verzameling objecten die door de query worden geretourneerd.
Van toepassing op
ExecuteQuery<TResult>(String, Object[])
Hiermee worden SQL-query's rechtstreeks op de database uitgevoerd en worden objecten geretourneerd.
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)
Type parameters
- TResult
Het type elementen in de geretourneerde verzameling.
Parameters
- query
- String
De SQL-query die moet worden uitgevoerd.
- parameters
- Object[]
De matrix met parameters die moeten worden doorgegeven aan de opdracht. Let op het volgende gedrag:
Als het aantal objecten in de matrix kleiner is dan het hoogste getal dat in de opdrachtreeks wordt geïdentificeerd, wordt er een uitzondering gegenereerd.
Als de matrix objecten bevat waarnaar niet wordt verwezen in de opdrachtreeks, wordt er geen uitzondering gegenereerd.
Als een parameter null is, wordt deze geconverteerd naar DBNull.Value.
Retouren
Een verzameling objecten die door de query worden geretourneerd.
Voorbeelden
In het volgende voorbeeld ziet u één gebruik voor deze methode:
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
Opmerkingen
Deze methode is een passthrough-mechanisme voor gevallen waarin LINQ naar SQL niet voorziet in een bepaald scenario.
Het algoritme voor het vergelijken van kolommen in het resultaat van de query naar velden en eigenschappen in het object werkt als volgt:
Als een veld of eigenschap is toegewezen aan een bepaalde kolomnaam, wordt die kolomnaam verwacht in de resultatenset.
Als een veld of eigenschap niet is toegewezen, wordt een kolom met dezelfde naam als het veld of de eigenschap verwacht in de resultatenset.
De vergelijking wordt uitgevoerd door eerst een hoofdlettergevoelige overeenkomst te zoeken. Als een dergelijke overeenkomst niet wordt gevonden, treedt er een volgende zoekopdracht op voor een niet-hoofdlettergevoelige overeenkomst.
De query moet alle bijgehouden velden en eigenschappen van het object retourneren (afgezien van de velden die zijn onderworpen aan uitgestelde laadtijden) wanneer aan alle volgende voorwaarden wordt voldaan:
Als
<T>dit een entiteit is die expliciet wordt bijgehouden door de DataContext.ObjectTrackingEnabled is waar.
De entiteit heeft een primaire sleutel.
Anders wordt er een uitzondering gegenereerd.
In alle andere gevallen kan de query slechts een subset van de bijgehouden velden en eigenschappen voor het object ophalen.