Mapeamento Objeto-Relacional com LINQ

356 visualizações

Publicada em

LINQ - Language integrated Query - é um conjunto de recursos introduzidos no .NET Framework 3.5 que permitem a realização de consultas diretamente em base de dados , documentos XML , estrutura de dados , coleção de objetos ,etc. usando uma sintaxe parecida com a linguagem SQL.

Atenção você precisa do Visual Studio 2008 ou o Visual Web Developer 2008 Express (.NET Framework 3.5) instalado

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
356
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
3
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Mapeamento Objeto-Relacional com LINQ

  1. 1. Análise e Projeto Orientado a Objetos Grupo 4 Mapeamento Objeto-Relacional com LINQ
  2. 2. LINQ
  3. 3. Grupo 4 Mapeamento Objeto-Relacional com LINQ O que é LINQ? LINQ - Language integrated Query - é um conjunto de recursos introduzidos no .NET Framework 3.5 que permitem a realização de consultas diretamente em base de dados , documentos XML , estrutura de dados , coleção de objetos ,etc. usando uma sintaxe parecida com a linguagem SQL. Atenção você precisa do Visual Studio 2008 ou o Visual Web Developer 2008 Express (.NET Framework 3.5) instalado
  4. 4. Grupo 4 Mapeamento Objeto-Relacional com LINQ Arquitetura LINQ OBS: LINQ to SQL é uma solução OR/M (Acesso a Dados) e os outros tipos de LINQ (Objects, Datasets, Entities, XML) são linguagens de consulta
  5. 5. LINQ to Object
  6. 6. Grupo 4 Mapeamento Objeto-Relacional com LINQ LINQ to Object Consiste na execução de “queries” semelhantes às escritas em SQL (Structured Query Language) sobre coleções que implementam uma das interfaces IEnumerable ou IEnumerable<T>. Objetivo é realizar consultas sobre coleções que implementam as interfaces IEnumerable ou IEnumerable<T>, ou seja, Arrays, Listas genéricas do tipo List<T>, dicionários de dados, textos, etc.
  7. 7. Grupo 4 Mapeamento Objeto-Relacional com LINQ Examples
  8. 8. Grupo 4 Mapeamento Objeto-Relacional com LINQ Examples
  9. 9. Grupo 4 Mapeamento Objeto-Relacional com LINQ Operadores Select - Faz uma projeção na coleção de dados para selecionar regiões relevantes entre os elementos. Where - Define regras de filtragem na coleção de dados que são avaliadas para cada item. SelectMany - Mapeamento estipulado pelo programador de uma coleção de dados para coleções. Sum, Min, Max, Average - Encontra a soma, o menor elemento, o maior elemento ou a média dos itens da coleção de dados, respectivamente. Join, GroupJoin - Faz a junção de duas coleções de dados, baseado em chaves de comum valor semântico em cada coleção. Take, TakeWhile - O primeiro seleciona os primeiros n ojectos da coleção, enquanto o segundo toma um predicado que seleciona os objectos que casam com o predicado. Skip, SkipWhile - Complementos dos anteriores, eles ignoram os primeiros n objetos da coleção, ou enquanto há casamento com o predicado. OfType - Seleciona objetos de determinado tipo.
  10. 10. Grupo 4 Mapeamento Objeto-Relacional com LINQ Operadores Concat - Concatena duas coleções. OrderBy, ThenBy - O primeiro determina o critério de ordenação da coleção de dados, ascendente por padrão. O segundo especifica critérios subsequentes de ordenação. Reverse - Inverte a ordenação da coleção de dados. GroupBy - Extrai uma chave e retorna uma coleção para cada chave. Distinct - Remove instâncias repetidas na coleção. Union, Intersect, Except - Provem união, interseção e complementar em duas sequências, respectivamente. SequenceEqual - Verifica se todos os elementos de duas coleções são iguais. First, FirstOrDefault, Last, LastOrDefault - Retorna o primeiro elemento, o primeiro ou o valor padrão, o último, o último ou valor padrão da coleção de dados, respectivamente. Single - Retorna o único elemento que casa um predicado dado. Havendo nenhum ou múltiplos casamentos, uma exceção é lançada. ElementAt - Retorna o elemento em determinado índice na coleção de dados.
  11. 11. Grupo 4 Mapeamento Objeto-Relacional com LINQ Operadores Any, All, Contains O primeiro verifica se algum elemento da coleção casa o predicado. O segundo verifica se todos os elementos da coleção casam o predicado. O terceiro verifica se a coleção contém determinado valor. Count Conta a quantidade de elementos em uma coleção. Ainda são especificados alguns operadores de conversão da coleção em outro tipo: • AsEnumerable: converte para IEnumerable<T>. • ToQueryable: converte para IQueryable<T>. • ToArray: converte para vetor. • ToList: converte para IList<T>. • ToDictionary: converte para IDictionary<K, T>, indexado por K. • ToLookup: converte para ILookup<K, T>, indexado por K. • Cast: converte uma coleção IEnumerable não-genérica para uma IEnumerable<T>, por conversão de tipo. • OfType: converte uma coleção IEnumerable não-genérica para uma IEnumerable<T>, incluindo somente elementos do tipo T.
  12. 12. LINQ to XML
  13. 13. Grupo 4 Mapeamento Objeto-Relacional com LINQ LINQ to XML Visto que eliminar tamanha complexidade é um dos objetivos principais do LINQ to XML. Embora a plataforma .NET lhe oferece recursos para tratar com XML , o LINQ to XML vai além, pois ele integra os operadores padrão de consulta do LINQ com XML, e, além disso, o oferece também classes para criar e gerenciar facilmente XML. Dessa forma o LINQ to XML permite que você fique focado no que você tem que fazer e não em como fazer tornando assim o XML apenas uma fonte de dados para o LINQ.
  14. 14. Grupo 4 Mapeamento Objeto-Relacional com LINQ Examples <?xml version="1.0" encoding="utf-8" ?> <empregado> <!--secção pessoa--> <pessoa> <id>1</id> <nome>Jose Carlos</nome> <sobrenome>Macoratti</sobrenome> <idperfil>1</idperfil> </pessoa> <pessoa> <id>2</id> <nome>Jefferson</nome> <sobrenome>Andre</sobrenome> <idperfil>2</idperfil> </pessoa> <!--pseção perfil-> <perfil> <id>1</id> <perfildescricao>Gerente</perfildescricao> </perfil> <perfil> <id>2</id> <perfildescricao>Analista</perfildescricao> </perfil> <!--seção salario-> <salario> <idpessoa id="1" ano="2006" salarioano="10000,00" /> <idpessoa id="1"ano="2007" salarioano="15000,00" /> </salario> </empregado> XElement xml = XElement.Load(@"....Empregado.xml"); var consulta = from p in xml.Elements("empregado").Elements("pessoa") where (int)p.Element("id") == 1 select p;foreach(var registro in consulta) { Console.WriteLine("Pessoa: {0} {1}", registro.Element("nome"), registro.Element("sobrenome")); }
  15. 15. LINQ to DataSet
  16. 16. Grupo 4 Mapeamento Objeto-Relacional com LINQ DataSet o que é? O primeiro dos dois maiores componentes da arquitetura ADO.NET, veio pra substituir o antigo Recordset da ADO. Para a camada de apresentação, o DataSet está integrado com controles de GUI para a vinculação de dados. Para a camada intermediária, ele fornece um cache que preserva o formato relacional de dados, e inclui serviços simples rápidos de consulta e navegação a hierarquia. Principal característica : - Totalmente desconectado. Quando usar ? -Armazenar dados por um longo período. -Transferir dados para outras classes. -Fazer atualizações e alterações nos dados sem usar procedimentos armazenados nem declarações SQL. -Salvar e recuperar dados como um arquivo XML. -Poder ler dados e navegar pelos dados sem restrições para frente e para trás entre as tabelas do banco de dados.
  17. 17. Grupo 4 Mapeamento Objeto-Relacional com LINQ LINQ to DataSet É um componente do. NET Framework versão 3.5, que simplifica as consultas permitindo aos desenvolvedores criar consultas com a própria linguagem de programação, em vez de usar uma linguagem de consulta separada e fornece a verificação em tempo de compilação. Positivo Negativo Otimiza a performance do banco reduzindo o número de acessos. Recursos de consulta limitados. Manipular os dados em memória mantendo sua forma relacional. Soluções para oracle não são padrão. Permite consultar dados consolidados de uma ou mais fontes.
  18. 18. LINQ to SQL
  19. 19. Grupo 4 Mapeamento Objeto-Relacional com LINQ LINQ to SQL é um componente do. NET Framework versão 3.5, que fornece uma infra-estrutura em tempo de execução para a gestão dados relacionais como objetos. Suporte a transações Functions Stored Procedures Views ORM a grosso modo é uma técnica que reúne um conjunto de classes que mapeiam as entidades de um bando de dados relacional.
  20. 20. Grupo 4 Mapeamento Objeto-Relacional com LINQ LINQ to SQL é um componente do. NET Framework versão 3.5, que fornece uma infra-estrutura em tempo de execução para a gestão dados relacionais como objetos. Suporte a transações Functions Stored Procedures Views Aplicação LINQ to SQL ADO.NET SQL Server ORM a grosso modo é uma técnica que reúne um conjunto de classes que mapeiam as entidades de um bando de dados relacional.
  21. 21. Grupo 4 Mapeamento Objeto-Relacional com LINQ LINQ to SQL Classes geradas pelo LINQ to SQL public partial class NorthwindDataContext : System.Data.Linq.DataContext public partial class Product : INotifyPropertyChanging, INotifyPropertyChanged public partial class Category : INotifyPropertyChanging, INotifyPropertyChanged
  22. 22. Grupo 4 Mapeamento Objeto-Relacional com LINQ LINQ to SQL Select using( NorthwindDataContext db = new NorthwindDataContext()) { IEnumerable<Product> beverages = from p in db.Products where p.Category.CategoryName == "Beverages" orderby p.ProductName select p; }
  23. 23. Grupo 4 Mapeamento Objeto-Relacional com LINQ LINQ to SQL Update using( NorthwindDataContext db = new NorthwindDataContext()) { Product p = db.Products.First(); p.UnitPrice = (decimal)20.00; db.SubmitChanges(); }
  24. 24. Grupo 4 Mapeamento Objeto-Relacional com LINQ LINQ to SQL Imagine o seguinte cenário.... Padrão-less Entidades Externas LINQ to SQL Aplicação
  25. 25. Grupo 4 Mapeamento Objeto-Relacional com LINQ LINQ to SQL Imagine o seguinte cenário.... Padrão-less Entidades Externas LINQ to SQL Aplicação

×