DataContext.ExecuteQuery Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Sobrecargas
| Name | Description |
|---|---|
| ExecuteQuery(Type, String, Object[]) |
Executa consultas SQL diretamente na base de dados. |
| ExecuteQuery<TResult>(String, Object[]) |
Executa consultas SQL diretamente na base de dados e devolve objetos. |
ExecuteQuery(Type, String, Object[])
Executa consultas SQL diretamente na base 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> que deve ser devolvido.
O algoritmo para associar colunas no resultado da consulta a campos ou propriedades no objeto funciona da seguinte forma:
Se um campo ou propriedade for mapeado para um nome de coluna específico, esse nome de coluna é esperado no conjunto de resultados.
Se um campo ou propriedade não for mapeado, espera-se uma coluna com o mesmo nome do campo ou propriedade no conjunto de resultados.
A comparação é feita procurando primeiro uma correspondência sensível a maiúsculas e maiúsculas. Se esta correspondência não for encontrada, ocorre uma pesquisa subsequente por uma correspondência insensível a maiúsculas e minúsculas.
A consulta deve devolver todos os campos e propriedades rastreados do objeto (exceto aqueles que são carregados em regime diferido) quando todas as seguintes condições são verdadeiras:
T é uma entidade explicitamente acompanhada pelo DataContext.
ObjectTrackingEnabled é true.
A entidade tem uma chave primária.
Caso contrário, é lançada uma exceção.
- query
- String
A consulta SQL a ser executada.
- parameters
- Object[]
O array de parâmetros a passar ao comando. Tenha em atenção o seguinte comportamento:
Se o número de objetos no array for inferior ao número mais alto identificado na cadeia de comandos, é lançada uma exceção.
Se o array contiver objetos que não estão referenciados na cadeia de comandos, não é lançada nenhuma exceção.
Se um parâmetro for null, ele é convertido em DBNull.Value.
Devoluções
Uma IEnumerable<T> coleção de objetos devolvidos pela consulta.
Aplica-se a
ExecuteQuery<TResult>(String, Object[])
Executa consultas SQL diretamente na base de dados e devolve 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 Genérico
- TResult
O tipo dos elementos na coleção devolvida.
Parâmetros
- query
- String
A consulta SQL a ser executada.
- parameters
- Object[]
O array de parâmetros a passar ao comando. Tenha em atenção o seguinte comportamento:
Se o número de objetos no array for inferior ao número mais alto identificado na cadeia de comandos, é lançada uma exceção.
Se o array contiver objetos que não estão referenciados na cadeia de comandos, não é lançada nenhuma exceção.
Se um parâmetro for nulo, ele é convertido em DBNull.Value.
Devoluções
Uma coleção de objetos devolvidos pela consulta.
Exemplos
O exemplo seguinte mostra uma utilização deste 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
Observações
Este método é um mecanismo de passagem para casos em que o LINQ para SQL não prevê um cenário específico.
O algoritmo para corresponder colunas no resultado da consulta a campos e propriedades no objeto funciona da seguinte forma:
Se um campo ou propriedade for mapeado para um nome de coluna específico, esse nome de coluna é esperado no conjunto de resultados.
Se um campo ou propriedade não for mapeado, espera-se uma coluna com o mesmo nome do campo ou propriedade no conjunto de resultados.
A comparação é feita procurando primeiro uma correspondência sensível a maiúsculas minúsculas. Se tal correspondência não for encontrada, ocorre uma busca subsequente por uma correspondência insensível a maiúsculas e minúsculas.
A consulta deve devolver todos os campos e propriedades rastreados do objeto (exceto aqueles sujeitos a carregamento diferido) quando todas as seguintes são verdadeiras:
Se
<T>for uma entidade explicitamente rastreada pelo DataContext.ObjectTrackingEnabled é verdade.
A entidade tem uma chave primária.
Caso contrário, é lançada uma exceção.
Em todos os outros casos, a consulta pode recuperar apenas um subconjunto dos campos e propriedades rastreados do objeto.