ObjectContext.ExecuteStoreQuery 方法

定義

多載

ExecuteStoreQuery<TElement>(String, Object[])

直接針對資料來源執行查詢,並傳回具型別的結果序列。

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

直接針對資料來源執行查詢,並傳回具型別的結果序列。 指定實體集和合併選項,以便能夠以實體形式追蹤查詢結果。

ExecuteStoreQuery<TElement>(String, Object[])

直接針對資料來源執行查詢,並傳回具型別的結果序列。

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)

類型參數

TElement

傳回之資料的型別。

參數

commandText
String

要使用資料來源的原生語言來執行之命令。

parameters
Object[]

要傳遞至命令的參數陣列。

傳回

ObjectResult<TElement>

型別為 TElement 之物件的列舉。

備註

方法 ExecuteStoreQuery 會使用現有的連接,直接對數據源執行任意命令。 如果此類異動存在,則會在目前異動的內容中執行存放區命令。

呼叫 ExecuteStoreQuery 方法相當於呼叫 ExecuteReader 類別的 DbCommand 方法,只有 ExecuteStoreQuery 會傳回實體,而 ExecuteReader 會傳回 DbDataReader 中的屬性值。

ExecuteStoreQuery如果您要追蹤結果,請使用指定的實體集名稱呼叫 。

Translate當讀取器包含對應至指定實體類型的數據列時,呼叫 方法以將 轉譯DbDataReader為實體物件。

使用參數型命令 (Parameterized Command) 有助於防衛 SQL 插入式攻擊,在此類攻擊中,攻擊者會將命令「插入」至 SQL 陳述式而危及伺服器的安全。 參數化命令會藉由保證從外部來源接收的值只傳遞為值,而不是 SQL 語句的一部分,來防範 SQL 插入式攻擊。 因此,插入值的 SQL 命令不會在數據源上執行。 而是只將其做為參數值評估。 除了安全性優點之外,參數化命令還提供方便的方法,以組織使用 SQL 語句或預存程式傳遞的值。

parameters 值可以是 DbParameter 物件的陣列或參數值的陣列。 如果只提供值,則會根據數位中的值順序建立 對象的陣列 DbParameter

如需詳細資訊,請參閱

直接執行存放區命令

如何:直接針對資料來源執行命令

適用於

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

直接針對資料來源執行查詢,並傳回具型別的結果序列。 指定實體集和合併選項,以便能夠以實體形式追蹤查詢結果。

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)

類型參數

TEntity

傳回之資料的實體型別。

參數

commandText
String

要使用資料來源的原生語言來執行之命令。

entitySetName
String

TEntity 型別的實體集。 如果未提供實體集名稱,則不會追蹤結果。

mergeOption
MergeOption

要在執行查詢時使用的 MergeOption。 預設為 AppendOnly

parameters
Object[]

要傳遞至命令的參數陣列。

傳回

ObjectResult<TEntity>

型別為 TResult 之物件的列舉。

備註

方法 ExecuteStoreQuery 會使用現有的連接,直接對數據源執行任意命令。 如果此類異動存在,則會在目前異動的內容中執行存放區命令。

呼叫 ExecuteStoreQuery 方法相當於呼叫 ExecuteReader 類別的 DbCommand 方法,只有 ExecuteStoreQuery 會傳回實體,而 ExecuteReader 會傳回 DbDataReader 中的屬性值。

如果您想要將結果追蹤為實體,請指定實體集名稱。

當讀取器包含對應至指定實體類型的數據列時,呼叫 Translate 方法可將 轉譯 DbDataReader 為實體物件。

使用參數型命令 (Parameterized Command) 有助於防衛 SQL 插入式攻擊,在此類攻擊中,攻擊者會將命令「插入」至 SQL 陳述式而危及伺服器的安全。 參數化命令會藉由保證從外部來源接收的值只傳遞為值,而不是 SQL 語句的一部分,來防範 SQL 插入式攻擊。 因此,插入值的 SQL 命令不會在數據源上執行。 而是只將其做為參數值評估。 除了安全性優點之外,參數化命令還提供方便的方法,以組織使用 SQL 語句或預存程式傳遞的值。

parameters 值可以是 DbParameter 物件的陣列或參數值的陣列。 如果只提供值,則會根據數位中的值順序建立 對象的陣列 DbParameter

如需詳細資訊,請參閱

直接執行存放區命令

如何:直接針對資料來源執行命令

適用於