DataContext.ExecuteQuery メソッド

定義

オーバーロード

名前 説明
ExecuteQuery(Type, String, Object[])

データベースに対して SQL クエリを直接実行します。

ExecuteQuery<TResult>(String, Object[])

データベースに対して SQL クエリを直接実行し、オブジェクトを返します。

ExecuteQuery(Type, String, Object[])

データベースに対して SQL クエリを直接実行します。

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

パラメーター

elementType
Type

返される IEnumerable<T> の型。

クエリの結果の列をオブジェクトのフィールドまたはプロパティと照合するアルゴリズムは、次のように機能します。

フィールドまたはプロパティが特定の列名にマップされている場合、その列名は結果セットに表示されます。

フィールドまたはプロパティがマップされていない場合は、フィールドまたはプロパティと同じ名前の列が結果セットに表示されます。

比較は、最初に大文字と小文字が区別される一致を検索することによって実行されます。 この一致が見つからない場合は、大文字と小文字が区別されない一致に対して後続の検索が行われます。

次の条件がすべて満たされている場合、クエリはオブジェクトのすべての追跡対象フィールドとプロパティ (遅延ベースで読み込まれるフィールドを除く) を返す必要があります。

T は、 DataContextによって明示的に追跡されるエンティティです。

ObjectTrackingEnabledtrueです。

エンティティには主キーがあります。

それ以外の場合は、例外がスローされます。

query
String

実行する SQL クエリ。

parameters
Object[]

コマンドに渡すパラメーターの配列。 以下の動作に注意してください。

配列内のオブジェクトの数がコマンド文字列で識別された最も大きい数より少ない場合は、例外がスローされます。

コマンド文字列で参照されていないオブジェクトが配列に含まれている場合、例外はスローされません。

パラメーターが nullされている場合は、 DBNull.Valueに変換されます。

返品

クエリによって返されるオブジェクトの IEnumerable<T> コレクション。

適用対象

ExecuteQuery<TResult>(String, Object[])

データベースに対して SQL クエリを直接実行し、オブジェクトを返します。

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)

型パラメーター

TResult

返されるコレクション内の要素の型。

パラメーター

query
String

実行する SQL クエリ。

parameters
Object[]

コマンドに渡すパラメーターの配列。 以下の動作に注意してください。

配列内のオブジェクトの数がコマンド文字列で識別された最も大きい数より少ない場合は、例外がスローされます。

コマンド文字列で参照されていないオブジェクトが配列に含まれている場合、例外はスローされません。

パラメーターが null の場合は、 DBNull.Valueに変換されます。

返品

IEnumerable<TResult>

クエリによって返されるオブジェクトのコレクション。

次の例は、このメソッドの 1 つの用途を示しています。

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

注釈

このメソッドは、LINQ to SQL が特定のシナリオに対応していない場合のパススルー メカニズムです。

クエリの結果の列をオブジェクトのフィールドとプロパティと照合するアルゴリズムは、次のように機能します。

  • フィールドまたはプロパティが特定の列名にマップされている場合、その列名は結果セットに表示されます。

  • フィールドまたはプロパティがマップされていない場合は、フィールドまたはプロパティと同じ名前の列が結果セットに表示されます。

  • 比較は、最初に大文字と小文字が区別される一致を検索することによって実行されます。 このような一致が見つからない場合は、大文字と小文字が区別されない一致に対して後続の検索が行われます。

  • 次の条件がすべて満たされている場合、(遅延読み込みの対象とは別に) オブジェクトのすべての追跡対象フィールドとプロパティを返す必要があります。

    • <T>DataContextによって明示的に追跡されるエンティティである場合。

    • ObjectTrackingEnabled は true です。

    • エンティティには主キーがあります。

    それ以外の場合は、例外がスローされます。

  • それ以外の場合は、クエリはオブジェクトの追跡対象フィールドとプロパティのサブセットのみを取得できます。

適用対象