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

Definición

Sobrecargas

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

Ejecuta las consultas SQL directamente en la base de datos.Executes SQL queries directly on the database.

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

Ejecuta las consultas SQL directamente en la base de datos y devuelve objetos.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[])

Ejecuta las consultas SQL directamente en la base de datos.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

Parámetros

elementType
Type Type Type Type

Tipo de IEnumerable<T> que se va a devolver.The type of the IEnumerable<T> to be returned.

El algoritmo para hacer coincidir las columnas en el resultado de la consulta con los campos o propiedades en el objeto funciona de la siguiente manera:The algorithm for matching columns in the result of the query to fields or properties in the object works as follows: Si una propiedad o un campo está asignado a un nombre de columna concreto, se espera ese nombre de columna en el conjunto de resultados.If a field or property is mapped to a particular column name, that column name is expected in the resultset.

Si una propiedad o un campo no está asignado, se espera una columna con el mismo nombre que la propiedad o el campo en el conjunto de resultados.If a field or property is not mapped, a column with the same name as the field or property is expected in the resultset.

La comparación se realiza buscando primero una coincidencia con distinción entre mayúsculas y minúsculas.The comparison is performed by looking for a case-sensitive match first. Si no se encuentra ninguna coincidencia de este tipo, se buscará una coincidencia sin distinción entre mayúsculas y minúsculas.If this match is not found, a subsequent search occurs for a case-insensitive match.

La consulta debe devolver todos los campos y propiedades del objeto de los que se ha realizado un seguimiento (excepto los que se cargan de manera aplazada) cuando se cumplen todas las condiciones siguientes: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: T es una entidad de la que DataContext realiza un seguimiento explícito.T is an entity explicitly tracked by the DataContext.

ObjectTrackingEnabled es true.ObjectTrackingEnabled is true.

La entidad tiene una clave principal.The entity has a primary key.

De lo contrario, se produce una excepción.Otherwise an exception is thrown.

query
String String String String

Consulta SQL que se va a ejecutar.The SQL query to be executed.

parameters
Object[]

Matriz de parámetros que se va a pasar al comando.The array of parameters to be passed to the command. Observe el comportamiento siguiente:Note the following behavior: 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.If the number of objects in the array is less than the highest number identified in the command string, an exception is thrown.

Si la matriz contiene objetos a los que no se hace referencia en la cadena de comandos, no se produce ninguna excepción.If the array contains objects that are not referenced in the command string, no exception is thrown.

Si un parámetro es null, se convierte en DBNull.Value.If a parameter is null, it is converted to DBNull.Value.

Devoluciones

Colección IEnumerable<T> de los objetos devueltos por la consulta.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[])

Ejecuta las consultas SQL directamente en la base de datos y devuelve objetos.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)

Parámetros de tipo

TResult

Tipo de elementos de la colección devuelta.The type of the elements in the returned collection.

Parámetros

query
String String String String

Consulta SQL que se va a ejecutar.The SQL query to be executed.

parameters
Object[]

Matriz de parámetros que se va a pasar al comando.The array of parameters to be passed to the command. Observe el comportamiento siguiente:Note the following behavior: 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.If the number of objects in the array is less than the highest number identified in the command string, an exception is thrown.

Si la matriz contiene objetos a los que no se hace referencia en la cadena de comandos, no se produce ninguna excepción.If the array contains objects that are not referenced in the command string, no exception is thrown.

Si un parámetro es null, se convierte en DBNull.Value.If a parameter is null, it is converted to DBNull.Value.

Devoluciones

IEnumerable<TResult>

Colección de objetos devueltos por la consulta.A collection of objects returned by the query.

Comentarios

Este método es un mecanismo de paso a través para los LINQ to SQLLINQ to SQL casos en los que no se proporciona para un escenario determinado.This method is a pass-through mechanism for cases where LINQ to SQLLINQ to SQL does not provide for a particular scenario.

El algoritmo para hacer coincidir las columnas del resultado de la consulta con los campos y propiedades en el objeto funciona de la siguiente manera:The algorithm for matching columns in the result of the query to fields and properties in the object works as follows:

  • Si una propiedad o un campo está asignado a un nombre de columna concreto, se espera ese nombre de columna en el conjunto de resultados.If a field or property is mapped to a particular column name, that column name is expected in the resultset.

  • Si una propiedad o un campo no está asignado, se espera una columna con el mismo nombre que la propiedad o el campo en el conjunto de resultados.If a field or property is not mapped, a column with the same name as the field or property is expected in the resultset.

  • La comparación se realiza buscando primero una coincidencia que distingue entre mayúsculas y minúsculas.The comparison is performed by first looking for a case-sensitive match. Si no se encuentra dicha coincidencia, se produce una búsqueda posterior para una coincidencia que no distingue entre mayúsculas y minúsculas.If such a match is not found, a subsequent search occurs for a case-insensitive match.

  • La consulta debe devolver todos los campos y propiedades de los que se ha realizado un seguimiento (aparte de los sujetos a carga aplazada) cuando se cumplen todas las condiciones siguientes: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:

    • Es <T> si es una entidad de la que DataContextrealiza explícitamente un seguimiento.If <T> is an entity explicitly tracked by the DataContext.

    • ObjectTrackingEnabled es true.ObjectTrackingEnabled is true.

    • La entidad tiene una clave principal.The entity has a primary key.

    De lo contrario, se produce una excepción.Otherwise an exception is thrown.

  • En todos los demás casos, la consulta puede recuperar solo un subconjunto de las propiedades y los campos de los que se ha realizado un seguimiento para el objeto.In all other cases, the query can retrieve just a subset of the tracked fields and properties for the object.

En el C# fragmento de código siguiente se muestra un uso para este método: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);  

En 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  

Se aplica a