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
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 dos IEnumerable<T> a serem retornados.
O algoritmo para colunas correspondentes nos resultados da consulta para campos ou propriedades no objeto funciona da seguinte maneira: Se um campo ou propriedade é mapeado para um nome de coluna em particular, o nome dessa coluna é esperado no conjunto de resultados.
Se um campo ou propriedade não for mapeado, uma coluna com o mesmo nome do campo ou propriedade é esperada no conjunto de resultados.
A comparação é realizada procurando, primeiro, uma correspondência que diferencia maiúsculas de minúsculas. Se essa correspondência não for encontrada, uma pesquisa subsequente ocorre para uma correspondência que diferencia maiúsculas de minúsculas.
A consulta deve retornar todos os campos rastreados e propriedades do objeto (exceto aqueles que são carregados de forma adiada) quando todas as seguintes condições forem verdadeiras:
T
é uma entidade explicitamente controlada por DataContext.
ObjectTrackingEnabled é true
.
A entidade tem uma chave primária.
Do contrário, uma exceção será acionada.
- 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 maior número 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 em DBNull.Value
.
Retornos
Uma coleção de objetos IEnumerable<T> retornada 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:
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);
public System.Collections.Generic.IEnumerable<TResult> ExecuteQuery<TResult> (string query, params object[] parameters) where TResult : new();
member this.ExecuteQuery : string * obj[] -> seq<'Result>
member this.ExecuteQuery : string * obj[] -> seq<'Result (requires 'Result : (new : unit -> 'Result))> (requires 'Result : (new : unit -> 'Result))
Public Function ExecuteQuery(Of TResult) (query As String, ParamArray parameters As Object()) As IEnumerable(Of TResult)
Public Function ExecuteQuery(Of TResult As New) (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 maior número 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 em DBNull.Value
.
Retornos
- IEnumerable<TResult>
Uma coleção de objetos retornada 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 LINQ to SQL não fornece um cenário específico.
O algoritmo para correspondência de colunas no resultado da consulta para campos e propriedades no objeto funciona da seguinte maneira:
Se um campo ou propriedade é mapeado para um nome de coluna em particular, o nome dessa coluna é esperado no conjunto de resultados.
Se um campo ou propriedade não for mapeado, uma coluna com o mesmo nome do campo ou propriedade é 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 controlada explicitamente pelo DataContext.ObjectTrackingEnabled é verdadeiro.
A entidade tem uma chave primária.
Do contrário, uma exceção será acionada.
Em todos os outros casos, a consulta pode recuperar apenas um subconjunto dos campos e propriedades rastreados para o objeto.