DataContext.ExecuteQuery Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| ExecuteQuery(Type, String, Object[]) |
Executa consultas SQL diretamente no banco de dados. |
| ExecuteQuery<TResult>(String, Object[]) |
Executa consultas SQL diretamente no banco de dados e retorna objetos. |
ExecuteQuery(Type, String, Object[])
Executa consultas SQL diretamente no banco de dados.
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
O tipo do IEnumerable<T> a ser retornado.
O algoritmo para correspondência de colunas no resultado da consulta a campos ou propriedades no objeto funciona da seguinte maneira:
Se um campo ou propriedade for mapeado para um nome de coluna específico, esse nome de coluna será esperado no conjunto de resultados.
Se um campo ou propriedade não for mapeado, uma coluna com o mesmo nome do campo ou propriedade será esperada no conjunto de resultados.
A comparação é executada procurando uma correspondência que diferencia maiúsculas de minúsculas primeiro. Se essa correspondência não for encontrada, ocorrerá uma pesquisa subsequente para uma correspondência que não diferencia maiúsculas de minúsculas.
A consulta deve retornar todos os campos e propriedades rastreados do objeto (exceto aqueles carregados em uma base adiada) quando todas as seguintes condições forem verdadeiras:
T é uma entidade explicitamente controlada pelo DataContext.
ObjectTrackingEnabled é true.
A entidade tem uma chave primária.
Caso contrário, uma exceção será gerada.
- query
- String
A consulta SQL a ser executada.
- parameters
- Object[]
A matriz de parâmetros a serem passados para o comando. Observe o seguinte comportamento:
Se o número de objetos na matriz for menor que o número mais alto identificado na cadeia de caracteres de comando, uma exceção será gerada.
Se a matriz contiver objetos que não são referenciados na cadeia de caracteres de comando, nenhuma exceção será gerada.
Se um parâmetro for null, ele será convertido DBNull.Valueem .
Retornos
Uma IEnumerable<T> coleção de objetos retornados pela consulta.
Aplica-se a
ExecuteQuery<TResult>(String, Object[])
Executa consultas SQL diretamente no banco de dados e retorna 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
O tipo dos elementos na coleção retornada.
Parâmetros
- query
- String
A consulta SQL a ser executada.
- parameters
- Object[]
A matriz de parâmetros a serem passados para o comando. Observe o seguinte comportamento:
Se o número de objetos na matriz for menor que o número mais alto identificado na cadeia de caracteres de comando, uma exceção será gerada.
Se a matriz contiver objetos que não são referenciados na cadeia de caracteres de comando, nenhuma exceção será gerada.
Se um parâmetro for nulo, ele será convertido DBNull.Valueem .
Retornos
Uma coleção de objetos retornados pela consulta.
Exemplos
O exemplo a seguir mostra um 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
Comentários
Esse método é um mecanismo de passagem para casos em que o LINQ to SQL não fornece um cenário específico.
O algoritmo para correspondência de colunas no resultado da consulta a campos e propriedades no objeto funciona da seguinte maneira:
Se um campo ou propriedade for mapeado para um nome de coluna específico, esse nome de coluna será esperado no conjunto de resultados.
Se um campo ou propriedade não for mapeado, uma coluna com o mesmo nome do campo ou propriedade será esperada no conjunto de resultados.
A comparação é executada primeiro procurando uma correspondência que diferencia maiúsculas de minúsculas. Se essa correspondência não for encontrada, ocorrerá uma pesquisa subsequente para uma correspondência que não diferencia maiúsculas de minúsculas.
A consulta deve retornar todos os campos e propriedades rastreados do objeto (além daqueles sujeitos ao carregamento adiado) quando todos os seguintes forem verdadeiros:
Se
<T>for uma entidade explicitamente controlada pelo DataContext.ObjectTrackingEnabled é true.
A entidade tem uma chave primária.
Caso contrário, uma exceção será gerada.
Em todos os outros casos, a consulta pode recuperar apenas um subconjunto dos campos e propriedades rastreados para o objeto.