DataContext.ExecuteQuery Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
| Nombre | Description |
|---|---|
| ExecuteQuery(Type, String, Object[]) |
Ejecuta consultas SQL directamente en la base de datos. |
| ExecuteQuery<TResult>(String, Object[]) |
Ejecuta consultas SQL directamente en la base de datos y devuelve objetos. |
ExecuteQuery(Type, String, Object[])
Ejecuta consultas SQL directamente en la base de datos.
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
Parámetros
- elementType
- Type
Tipo del objeto IEnumerable<T> que se va a devolver.
El algoritmo para buscar coincidencias de columnas en el resultado de la consulta en campos o propiedades del objeto funciona de la siguiente manera:
Si un campo o propiedad se asigna a un nombre de columna determinado, se espera ese nombre de columna en el conjunto de resultados.
Si no se asigna un campo o una propiedad, se espera una columna con el mismo nombre que el campo o la propiedad en el conjunto de resultados.
La comparación se realiza buscando primero una coincidencia que distingue mayúsculas de minúsculas. Si no se encuentra esta coincidencia, se produce una búsqueda posterior para una coincidencia que no distingue mayúsculas de minúsculas.
La consulta debe devolver todos los campos y propiedades con seguimiento del objeto (excepto los que se cargan de forma diferida) cuando se cumplen todas las condiciones siguientes:
Tes una entidad de la que realiza un seguimiento explícito de .DataContext
ObjectTrackingEnabled es true.
La entidad tiene una clave principal.
De lo contrario, se produce una excepción.
- query
- String
Consulta SQL que se va a ejecutar.
- parameters
- Object[]
Matriz de parámetros que se pasarán al comando . Tenga en cuenta el siguiente comportamiento:
Si el número de objetos de la matriz es menor que el número más alto identificado en la cadena de comandos, se produce una excepción.
Si la matriz contiene objetos a los que no se hace referencia en la cadena de comandos, no se produce ninguna excepción.
Si un parámetro es null, se convierte en DBNull.Value.
Devoluciones
Colección IEnumerable<T> de objetos devueltos por la consulta.
Se aplica a
ExecuteQuery<TResult>(String, Object[])
Ejecuta consultas SQL directamente en la base de datos y devuelve objetos.
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)
Parámetros de tipo
- TResult
Tipo de los elementos de la colección devuelta.
Parámetros
- query
- String
Consulta SQL que se va a ejecutar.
- parameters
- Object[]
Matriz de parámetros que se pasarán al comando . Tenga en cuenta el siguiente comportamiento:
Si el número de objetos de la matriz es menor que el número más alto identificado en la cadena de comandos, se produce una excepción.
Si la matriz contiene objetos a los que no se hace referencia en la cadena de comandos, no se produce ninguna excepción.
Si un parámetro es NULL, se convierte en DBNull.Value.
Devoluciones
Colección de objetos devueltos por la consulta.
Ejemplos
En el ejemplo siguiente se muestra un uso para este método:
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
Comentarios
Este método es un mecanismo de paso a través para los casos en los que LINQ to SQL no proporciona un escenario determinado.
El algoritmo para buscar coincidencias de columnas en el resultado de la consulta en campos y propiedades del objeto funciona de la siguiente manera:
Si un campo o propiedad se asigna a un nombre de columna determinado, se espera ese nombre de columna en el conjunto de resultados.
Si no se asigna un campo o una propiedad, se espera una columna con el mismo nombre que el campo o la propiedad en el conjunto de resultados.
La comparación se realiza buscando primero una coincidencia que distingue mayúsculas de minúsculas. Si no se encuentra dicha coincidencia, se produce una búsqueda posterior para una coincidencia que no distingue mayúsculas de minúsculas.
La consulta debe devolver todos los campos y propiedades con seguimiento del objeto (aparte de los sujetos a la carga diferida) cuando se cumplen todas las siguientes condiciones:
Si
<T>es una entidad de la que realiza un seguimiento explícito de .DataContextObjectTrackingEnabled es true.
La entidad tiene una clave principal.
De lo contrario, se produce una excepción.
En todos los demás casos, la consulta puede recuperar solo un subconjunto de los campos y propiedades con seguimiento del objeto.