DataContext.ExecuteQuery DataContext.ExecuteQuery DataContext.ExecuteQuery DataContext.ExecuteQuery Method

정의

오버로드

ExecuteQuery(Type, String, Object[]) ExecuteQuery(Type, String, Object[]) ExecuteQuery(Type, String, Object[]) ExecuteQuery(Type, String, Object[])

데이터베이스에 대해 직접 SQL 쿼리를 실행합니다.Executes SQL queries directly on the database.

ExecuteQuery<TResult>(String, Object[]) ExecuteQuery<TResult>(String, Object[]) ExecuteQuery<TResult>(String, Object[]) ExecuteQuery<TResult>(String, Object[])

데이터베이스에 대해 직접 SQL 쿼리를 실행하고 개체를 반환합니다.Executes SQL queries directly on the database and returns objects.

ExecuteQuery(Type, String, Object[]) ExecuteQuery(Type, String, Object[]) ExecuteQuery(Type, String, Object[]) ExecuteQuery(Type, String, Object[])

데이터베이스에 대해 직접 SQL 쿼리를 실행합니다.Executes SQL queries directly on the database.

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 Type Type Type

반환될 IEnumerable<T>의 형식입니다.The type of the IEnumerable<T> to be returned.

쿼리 결과의 열을 개체의 필드 또는 속성과 일치시키는 알고리즘은 다음과 같이 작동합니다.The algorithm for matching columns in the result of the query to fields or properties in the object works as follows: 필드 또는 속성이 특정 열 이름에 매핑된 경우 해당 열 이름이 결과 집합에 있어야 합니다.If a field or property is mapped to a particular column name, that column name is expected in the resultset.

필드 또는 속성이 매핑되지 않은 경우 필드 또는 속성과 이름이 같은 열이 결과 집합에 있어야 합니다.If a field or property is not mapped, a column with the same name as the field or property is expected in the resultset.

우선 대/소문자를 구분하여 비교합니다.The comparison is performed by looking for a case-sensitive match first. 일치 항목이 없으면 대/소문자를 구분하지 않고 다시 검색합니다.If this match is not found, a subsequent search occurs for a case-insensitive match.

다음 조건에 모두 해당하는 경우 쿼리는 지연 로드가 적용되는 항목과 별도로 개체의 모든 추적된 필드 및 속성을 반환해야 합니다.The query must return all the tracked fields and properties of the object (except those that are loaded on a deferred basis) when all the following conditions are true: TDataContext에서 명시적으로 추적되는 엔터티입니다.T is an entity explicitly tracked by the DataContext.

ObjectTrackingEnabledtrue인 경우ObjectTrackingEnabled is true.

엔터티에 기본 키가 있습니다.The entity has a primary key.

그렇지 않으면 예외가 throw됩니다.Otherwise an exception is thrown.

query
String String String String

실행할 SQL 쿼리입니다.The SQL query to be executed.

parameters
Object[]

명령에 전달할 매개 변수 배열입니다.The array of parameters to be passed to the command. 다음 동작에 유의하세요.Note the following behavior: 배열의 개체 수가 명령 문자열에 지정된 최대 개수보다 작으면 예외가 throw됩니다.If the number of objects in the array is less than the highest number identified in the command string, an exception is thrown.

명령 문자열에서 참조되지 않은 개체가 배열에 있는 경우에는 예외가 throw되지 않습니다.If the array contains objects that are not referenced in the command string, no exception is thrown.

null인 매개 변수는 DBNull.Value로 변환됩니다.If a parameter is null, it is converted to DBNull.Value.

반환

쿼리에서 반환된 개체의 IEnumerable<T> 컬렉션입니다.An IEnumerable<T> collection of objects returned by the query.

ExecuteQuery<TResult>(String, Object[]) ExecuteQuery<TResult>(String, Object[]) ExecuteQuery<TResult>(String, Object[]) ExecuteQuery<TResult>(String, Object[])

데이터베이스에 대해 직접 SQL 쿼리를 실행하고 개체를 반환합니다.Executes SQL queries directly on the database and returns objects.

public:
generic <typename TResult>
 where TResult : gcnew() 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) where TResult : new();
member this.ExecuteQuery : string * obj[] -> seq<'Result (requires 'Result : (new : unit -> 'Result))> (requires 'Result : (new : unit -> 'Result))
Public Function ExecuteQuery(Of TResult As New) (query As String, ParamArray parameters As Object()) As IEnumerable(Of TResult)

형식 매개 변수

TResult

반환되는 컬렉션에 있는 요소의 형식입니다.The type of the elements in the returned collection.

매개 변수

query
String String String String

실행할 SQL 쿼리입니다.The SQL query to be executed.

parameters
Object[]

명령에 전달할 매개 변수 배열입니다.The array of parameters to be passed to the command. 다음 동작에 유의하세요.Note the following behavior: 배열의 개체 수가 명령 문자열에 지정된 최대 개수보다 작으면 예외가 throw됩니다.If the number of objects in the array is less than the highest number identified in the command string, an exception is thrown.

명령 문자열에서 참조되지 않은 개체가 배열에 있는 경우에는 예외가 throw되지 않습니다.If the array contains objects that are not referenced in the command string, no exception is thrown.

null인 매개 변수는 DBNull.Value로 변환됩니다.If a parameter is null, it is converted to DBNull.Value.

반환

IEnumerable<TResult>

쿼리에서 반환된 개체의 컬렉션입니다.A collection of objects returned by the query.

설명

이 메서드는 사례에 대 한 통과 메커니즘 여기서 LINQ to SQLLINQ to SQL 특정 시나리오를 제공 하지 않습니다.This method is a pass-through mechanism for cases where LINQ to SQLLINQ to SQL does not provide for a particular scenario.

개체의 속성과 필드에 쿼리 결과의 일치 하는 열에 대 한 알고리즘은 다음과 같습니다.The algorithm for matching columns in the result of the query to fields and properties in the object works as follows:

  • 필드 또는 속성이 특정 열 이름에 매핑된 경우 해당 열 이름이 결과 집합에 있어야 합니다.If a field or property is mapped to a particular column name, that column name is expected in the resultset.

  • 필드 또는 속성이 매핑되지 않은 경우 필드 또는 속성과 이름이 같은 열이 결과 집합에 있어야 합니다.If a field or property is not mapped, a column with the same name as the field or property is expected in the resultset.

  • 비교는 대/소문자 구분 일치 항목을 먼저 확인 하 여 수행 됩니다.The comparison is performed by first looking for a case-sensitive match. 일치 하는 항목이 없으면 대/소문자 일치 하는 후속 검색 발생 합니다.If such a match is not found, a subsequent search occurs for a case-insensitive match.

  • 모든 추적 된 필드 및 속성 (외에도 지연 된 로드에 따라 이러한) 개체의이 쿼리에서 반환 되어야 다음에 해당할 경우:The query must return all the tracked fields and properties of the object (apart from those subject to deferred loading) when all the following are true:

    • 하는 경우 <T> 은 엔터티의에서 명시적으로 추적을 DataContext입니다.If <T> is an entity explicitly tracked by the DataContext.

    • ObjectTrackingEnabled 마찬가지입니다.ObjectTrackingEnabled is true.

    • 엔터티에 기본 키가 있습니다.The entity has a primary key.

    그렇지 않으면 예외가 throw됩니다.Otherwise an exception is thrown.

  • 다른 모든 경우에는 쿼리 개체의 속성을 확인 하 고 추적 된 필드의 일부만을 검색할 수 있습니다.In all other cases, the query can retrieve just a subset of the tracked fields and properties for the object.

다음 C# 코드 조각은이 메서드에 대 한 한 가지 용도 보여 줍니다.The following C# snippet shows one use for this method:

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);  

Visual basicIn Visual Basic

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  

적용 대상