Consultas LINQ: Operações, Agregação e Manipulação XML
Objetivo das Expressões de Consulta LINQ
As expressões de consulta LINQ são utilizadas para especificar operações em coleções de dados. As cláusulas principais incluem:
- From: Especifica uma fonte de dados e uma variável local que representa cada elemento da coleção.
from <elementos> in <fonte de dados> - Where: Especifica critérios de restrição da consulta, selecionando resultados que satisfaçam uma expressão lógica.
where <expressão logica> - Select: Especifica os valores que devem resultar da pesquisa.
select <expressão> - Group: Agrupa os resultados de uma consulta de acordo com uma determinada chave.
group <element> by <critério> - Into: Fornece um identificador que pode servir como referência aos resultados de uma cláusula
join,groupouselect.<consulta> into <variavel> - Orderby: Ordena os resultados, de forma ascendente ou descendente.
- Join: Combina duas fontes de dados usando um critério de correspondência entre elas (por exemplo, igualdade de dois campos).
- Let: Introduz uma variável local para armazenar os resultados de uma subconsulta.
O que são Operações de Agregação?
Realizam uma operação sobre:
- Todos os objetos de uma coleção.
- Objetos que satisfaçam uma determinada condição.
Exemplo: Max(), Min(), Average(), Count(). São operações implementadas como métodos de extensão (fazem parte da maioria das classes .NET).
Manipulação de Ficheiros XML com LINQ
A arquitetura LINQ permite manipular diretamente ficheiros XML. As árvores XML são representadas em termos das classes XElement e XAttribute devido à inexistência de tipagem de dados em XML.
- XElement: Representa um nó numa árvore XML e possui métodos para carregar e gravar a árvore em ficheiro.
- XAttribute: Representa um atributo de um nó (elemento) XML.
Métodos para Manipulação de Ficheiros XML
- Método Elements(): Permite obter os elementos de um determinado nó ou que possuam um determinado nome.
- Método Descendants(): Permite procurar, na árvore XML, todos os descendentes de um certo nó ou com um determinado nome.
- Propriedade Value: Permite obter o valor texto de um certo nodo (XElement).
Geração e Atualização Dinâmica de Árvores XML
A combinação de expressões de consulta com a utilização de XElement permite gerar e atualizar dinamicamente árvores XML.
Possíveis Problemas na Cópia de Dados
Os possíveis problemas durante a cópia dos dados incluem:
- O disco pode ficar cheio.
- Erros de leitura dos dados.
- Erros de escrita dos dados.
O que são Threads?
Fluxo de execução (thread) é uma sequência pela qual um conjunto de instruções de uma aplicação são executadas. Uma aplicação pode ser:
- Single threaded: Possui apenas um fluxo de execução.
- Multi threaded: Possui dois ou mais fluxos de execução simultâneos.