ObjectContext.ExecuteStoreQuery Methode

Definition

Überlädt

ExecuteStoreQuery<TElement>(String, Object[])

Führt eine Abfrage, die eine Sequenz typisierter Ergebnisse zurückgibt, direkt für die Datenquelle aus.

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

Führt eine Abfrage, die eine Sequenz typisierter Ergebnisse zurückgibt, direkt für die Datenquelle aus. Geben Sie die Entitätenmenge und die Zusammenführungsoption an, damit Abfrageergebnisse als Entitäten nachverfolgt werden können.

ExecuteStoreQuery<TElement>(String, Object[])

Führt eine Abfrage, die eine Sequenz typisierter Ergebnisse zurückgibt, direkt für die Datenquelle aus.

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)

Typparameter

TElement

Der Typ der zurückgegebenen Daten.

Parameter

commandText
String

Der auszuführende Befehl in der systemeigenen Sprache der Datenquelle.

parameters
Object[]

Ein Parameterarray, das an den Befehl übergeben werden soll.

Gibt zurück

ObjectResult<TElement>

Eine Enumeration von Objekten vom Typ TElement.

Hinweise

Die ExecuteStoreQuery -Methode verwendet die vorhandene Verbindung, um einen beliebigen Befehl direkt für die Datenquelle auszuführen. Der Speicherbefehl wird im Kontext der aktuellen Transaktion ausgeführt, wenn eine solche Transaktion vorhanden ist.

Der Aufruf der ExecuteStoreQuery-Methode entspricht dem Aufruf der ExecuteReader-Methode der DbCommand-Klasse, nur gibt die ExecuteStoreQuery-Methode Entitäten zurück und die ExecuteReader-Methode gibt Eigenschaftswerte im DbDataReader zurück.

Rufen Sie den ExecuteStoreQuery mit dem angegebenen Entitätssatznamen auf, wenn die Ergebnisse nachverfolgt werden sollen.

Rufen Sie die Translate -Methode auf, um ein DbDataReader in Entitätsobjekte zu übersetzen, wenn der Reader Datenzeilen enthält, die dem angegebenen Entitätstyp zugeordnet sind.

Die Verwendung parametrisierter Befehle hilft beim Schutz vor SQL Injection-Angriffen, bei denen ein Angreifer einen SQL-Befehl in eine SQL-Anweisung einschleust, der die Sicherheit auf dem Server gefährdet. Parametrisierte Befehle schützen vor einem SQL-Einschleusungsangriff, indem sie sicherstellen, dass von einer externen Quelle empfangene Werte nur als Werte und nicht als Teil der SQL-Anweisung übergeben werden. Daher werden SQL-Befehle, die in einen Wert eingefügt werden, nicht an der Datenquelle ausgeführt. Stattdessen werden sie nur als Parameterwert ausgewertet. Zusätzlich zu den Sicherheitsvorteilen bieten parametrisierte Befehle eine praktische Methode zum Organisieren von Werten, die mit einer SQL-Anweisung oder einer gespeicherten Prozedur übergeben werden.

Der parameters-Wert kann ein Array von DbParameter-Objekten oder ein Array von Parameterwerten sein. Wenn nur Werte angegeben werden, wird ein Array von DbParameter Objekten basierend auf der Reihenfolge der Werte im Array erstellt.

Weitere Informationen finden Sie in folgenden Quellen:

Direktes Ausführen von Storebefehlen und

Gewusst wie: Direktes Ausführen von Befehlen für die Datenquelle

Gilt für:

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

Führt eine Abfrage, die eine Sequenz typisierter Ergebnisse zurückgibt, direkt für die Datenquelle aus. Geben Sie die Entitätenmenge und die Zusammenführungsoption an, damit Abfrageergebnisse als Entitäten nachverfolgt werden können.

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)

Typparameter

TEntity

Der Entitätstyp der zurückgegebenen Daten.

Parameter

commandText
String

Der auszuführende Befehl in der systemeigenen Sprache der Datenquelle.

entitySetName
String

Die Entitätenmenge vom TEntity-Typ. Wenn kein Entitätenmengenname angegeben wird, werden die Ergebnisse nicht nachverfolgt.

mergeOption
MergeOption

Die beim Ausführen der Abfrage zu verwendende MergeOption. Der Standardwert ist AppendOnly.

parameters
Object[]

Ein Parameterarray, das an den Befehl übergeben werden soll.

Gibt zurück

ObjectResult<TEntity>

Eine Enumeration von Objekten vom Typ TResult.

Hinweise

Die ExecuteStoreQuery -Methode verwendet die vorhandene Verbindung, um einen beliebigen Befehl direkt für die Datenquelle auszuführen. Der Speicherbefehl wird im Kontext der aktuellen Transaktion ausgeführt, wenn eine solche Transaktion vorhanden ist.

Der Aufruf der ExecuteStoreQuery-Methode entspricht dem Aufruf der ExecuteReader-Methode der DbCommand-Klasse, nur gibt die ExecuteStoreQuery-Methode Entitäten zurück und die ExecuteReader-Methode gibt Eigenschaftswerte im DbDataReader zurück.

Geben Sie den Entitätssatznamen an, wenn die Ergebnisse als Entitäten nachverfolgt werden sollen.

Rufen Sie Translate die Methode auf, um eine DbDataReader in Entitätsobjekte zu übersetzen, wenn der Reader Datenzeilen enthält, die dem angegebenen Entitätstyp zugeordnet sind.

Die Verwendung parametrisierter Befehle hilft beim Schutz vor SQL Injection-Angriffen, bei denen ein Angreifer einen SQL-Befehl in eine SQL-Anweisung einschleust, der die Sicherheit auf dem Server gefährdet. Parametrisierte Befehle schützen vor einem SQL-Einschleusungsangriff, indem sie sicherstellen, dass von einer externen Quelle empfangene Werte nur als Werte und nicht als Teil der SQL-Anweisung übergeben werden. Daher werden SQL-Befehle, die in einen Wert eingefügt werden, nicht an der Datenquelle ausgeführt. Stattdessen werden sie nur als Parameterwert ausgewertet. Zusätzlich zu den Sicherheitsvorteilen bieten parametrisierte Befehle eine praktische Methode zum Organisieren von Werten, die mit einer SQL-Anweisung oder einer gespeicherten Prozedur übergeben werden.

Der parameters-Wert kann ein Array von DbParameter-Objekten oder ein Array von Parameterwerten sein. Wenn nur Werte angegeben werden, wird ein Array von DbParameter Objekten basierend auf der Reihenfolge der Werte im Array erstellt.

Weitere Informationen finden Sie in folgenden Quellen:

Direktes Ausführen von Storebefehlen und

Gewusst wie: Direktes Ausführen von Befehlen für die Datenquelle

Gilt für: