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объектом.
ObjectTrackingEnabled равно true.
Сущность имеет первичный ключ.
В противном случае создается исключение.
- 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.
Возвращаемое значение
Коллекция объектов, возвращаемых запросом.
Примеры
В следующем примере показано одно использование этого метода:
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 не предоставляет определенного сценария.
Алгоритм сопоставления столбцов в результате запроса к полям и свойствам объекта работает следующим образом:
Если поле или свойство сопоставляется с определенным именем столбца, это имя столбца ожидается в наборе результатов.
Если поле или свойство не сопоставлено, столбец с таким же именем, что и поле или свойство, ожидается в наборе результатов.
Сравнение выполняется первым поиском соответствия с учетом регистра. Если такое совпадение не найдено, последующий поиск выполняется для нечувствительного к регистру совпадения.
Запрос должен возвращать все отслеживаемые поля и свойства объекта (помимо тех, которые подвергаются отложенной загрузке), если все следующие значения имеют значение true:
Если
<T>сущность явно отслеживается DataContext.ObjectTrackingEnabled имеет значение true.
Сущность имеет первичный ключ.
В противном случае создается исключение.
Во всех остальных случаях запрос может получить только подмножество отслеживаемых полей и свойств объекта.