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 mit der 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 Namen des angegebenen Entitätssatzes auf, wenn die Ergebnisse nachverfolgt werden sollen.

Rufen Sie die Translate Methode auf, um eine DbDataReader Entitätsobjekte zu übersetzen, wenn der Leser 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. Parameterisierte Befehle schützen vor einem SQL Injektionsangriff, indem sichergestellt wird, dass werte, die von einer externen Quelle empfangen wurden, nur als Werte und nicht als Teil der SQL-Anweisung übergeben werden. Daher werden SQL Befehle, die in einen Wert eingefügt wurden, nicht an der Datenquelle ausgeführt. Stattdessen werden sie nur als Parameterwert ausgewertet. Zusätzlich zu den Sicherheitsvorteilen bieten parametrisierte Befehle eine bequeme 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 Store Befehlen 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 mit der 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 Namen des Entitätssatzes an, wenn die Ergebnisse als Entitäten nachverfolgt werden sollen.

Rufen Sie die Methode Translate auf, um eine DbDataReader Entitätsobjekte zu übersetzen, wenn der Leser 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. Parameterisierte Befehle schützen vor einem SQL Injektionsangriff, indem sichergestellt wird, dass werte, die von einer externen Quelle empfangen wurden, nur als Werte und nicht als Teil der SQL-Anweisung übergeben werden. Daher werden SQL Befehle, die in einen Wert eingefügt wurden, nicht an der Datenquelle ausgeführt. Stattdessen werden sie nur als Parameterwert ausgewertet. Zusätzlich zu den Sicherheitsvorteilen bieten parametrisierte Befehle eine bequeme 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 Store Befehlen und

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

Gilt für