Partilhar via


Visão geral do LINQ to DataSet

O DataSet é um dos componentes mais utilizados do ADO.NET. É um elemento-chave do modelo de programação desconectado no qual ADO.NET se baseia e permite que você armazene explicitamente em cache dados de diferentes fontes de dados. Para a camada de apresentação, o DataSet é totalmente integrado com controles GUI para vinculação de dados. Para a camada intermediária, ele fornece um cache que preserva a forma relacional dos dados e inclui serviços de navegação rápida e simples de consulta e hierarquia. Uma técnica comum usada para reduzir o número de solicitações em um banco de dados é usar o DataSet for caching na camada intermediária. Por exemplo, considere um aplicativo Web ASP.NET orientado por dados. Muitas vezes, uma parte significativa dos dados do aplicativo não muda com freqüência e é comum entre sessões ou usuários. Esses dados podem ser mantidos na memória no servidor Web, o que reduz o número de solicitações no banco de dados e acelera as interações do usuário. Outro aspeto útil do DataSet é que ele permite que um aplicativo traga subconjuntos de dados de uma ou mais fontes de dados para o espaço do aplicativo. O aplicativo pode então manipular os dados na memória, mantendo sua forma relacional.

Apesar de sua proeminência, o DataSet tem capacidades de consulta limitadas. O Select método pode ser usado para filtrar e classificar, e os GetChildRows métodos e GetParentRow podem ser usados para navegação na hierarquia. Para qualquer coisa mais complexa, no entanto, o desenvolvedor deve escrever uma consulta personalizada. Isso pode resultar em aplicativos com desempenho insatisfatório e difícil de manter.

O LINQ to DataSet torna mais fácil e rápido consultar dados armazenados em cache em um DataSet objeto. Essas consultas são expressas na própria linguagem de programação, em vez de como literais de cadeia de caracteres incorporados no código do aplicativo. Isso significa que os desenvolvedores não precisam aprender uma linguagem de consulta separada. Além disso, o LINQ to DataSet permite que os desenvolvedores do Visual Studio trabalhem de forma mais produtiva, porque o IDE do Visual Studio fornece verificação de sintaxe em tempo de compilação, digitação estática e suporte ao IntelliSense para LINQ. O LINQ to DataSet também pode ser usado para consultar dados que foram consolidados de uma ou mais fontes de dados. Isso permite muitos cenários que exigem flexibilidade na forma como os dados são representados e tratados. Em particular, aplicativos genéricos de relatórios, análises e business intelligence exigem esse método de manipulação.

Consultando DataSets Usando LINQ to DataSet

Antes de começar a consultar um DataSet objeto usando LINQ to DataSet, você deve preencher o DataSetarquivo . Há várias maneiras de carregar dados em um DataSet, como usar a DataAdapter classe ou LINQ to SQL. Depois que os dados forem carregados em um DataSet objeto, você poderá começar a consultá-lo. A formulação de consultas usando o LINQ to DataSet é semelhante ao uso do LINQ (Language-Integrated Query) em relação a outras fontes de dados habilitadas para LINQ. As consultas LINQ podem ser executadas em tabelas únicas em uma DataSet ou em mais de uma tabela usando os Join operadores de consulta e GroupJoin padrão.

As consultas LINQ são suportadas em objetos tipados e não tipados DataSet . Se o esquema do é conhecido no momento do design do aplicativo, um digitado DataSetDataSet é recomendado. Em um digitado DataSet, as tabelas e linhas têm membros digitados para cada uma das colunas, o que torna as consultas mais simples e mais legíveis.

Além dos operadores de consulta padrão implementados no System.Core.dll, o LINQ to DataSet adiciona várias DataSetextensões específicas que facilitam a consulta sobre um conjunto de DataRow objetos. Essas DataSetextensões específicas incluem operadores para comparar sequências de linhas, bem como métodos que fornecem acesso aos valores de coluna de um DataRowarquivo .

Aplicativos de N camadas e LINQ to DataSet

Aplicativos de dados de N camadas são aplicativos centrados em dados que são separados em várias camadas lógicas (ou camadas). Um aplicativo típico de N camadas inclui uma camada de apresentação, uma camada intermediária e uma camada de dados. Separar os componentes do aplicativo em camadas separadas aumenta a capacidade de manutenção e a escalabilidade do aplicativo. Para obter mais informações sobre aplicativos de dados de N camadas, consulte Trabalhar com conjuntos de dados em aplicativos de n camadas.

Em aplicativos de N camadas, o DataSet é frequentemente usado na camada intermediária para armazenar em cache informações para um aplicativo Web. A funcionalidade de consulta LINQ to DataSet é implementada por meio de métodos de extensão e estende o ADO.NET 2.0 DataSetexistente.

Consulte também