Entenda LINQ (Language-IntegratedQuery) e sua sintaxe na linguagem C#
Rogério Moraes de CarvalhoVITA Informática
http://rogeriomc.wordpress.com
@rogeriomc
Agenda
O que é LINQ?
Entity Framework e LINQ para Entidades
LINQ para XML
LINQ para Objetos
Demonstração
Recursos
O que é LINQ?
Objetos
<agenda> <contato>
<nome>. . . </nome><email> . . . </email><fone/> . . . </fone>
<contato/>. . .
</agenda>
XML
.NET LINQ (Language INtegrated Query)
C# 3.0 ou superior VB 9.0 ou superior Outras linguagens…
Bancos de dados relacionais
LINQ paraObjetos
LINQ paraSQL
LINQ paraXML
LINQ paraEntidades
LINQ paraDataSets
Entity Framework e LINQ para Entidades
Aplicação
Banco de dados
Entity Framework
from c in db.Fornecedoreswhere c.UF == "DF"select s.NomeEmpresa
Consulta LINQdb: instância de DbContext
Consulta SQL
SELECT NomeEmpresaFROM FornecedoresWHERE UF = 'DF'
Registros
Entidades db.SaveChanges()
DML ou Stored Procedures
db.Fornecedores.Add(f1);f2.UF = "SP";db.Fornecedores.Remove(f3);
INSERT INTO Fornecedores …UPDATE Fornecedores …DELETE FROM Fornecedores …
LINQ para XML
O que é o LINQ para XML?
Interface de programação XML na memória
Integrada com .NET Language Integrated Query (LINQ)
XML Document Object Model vs. LINQ para XML
Também carrega o documento XML na memória
Porém, LINQ para XML tem uma sintaxe muito mais simples
XML DOM é um padrão W3C
XmlReader/XmlWriter vs. LINQ para XML vs.
Lê/gera XML rápido, somente para frente e sem cache
LINQ para Objetos
O que é o LINQ para Objetos?
API que permite o uso de consultas LINQ em coleções
Do tipo IEnumerable ou IEnumerable<T>
Nova abordagem para consulta a coleções
No modo antigo era preciso escrever laços complexos
Mais conciso e legível
Fornece poderosas capacidades de filtragem, ordenação e agrupamento com um mínimo de código
Facilmente portado para outras fontes de dados
Demonstração
Fontes de dados
LINQ para entidades
Entity Framework
LINQ para XML
LINQ para Objetos
Operações com LINQ
Projeção
Filtragem
Ordenação
Junção
Agrupamento
Agregação
Recursos
Microsoft Developer Network
101 LINQ Samples
MSDN Library
LINQ (Language-Integrated Query)
LINQ to XML
LINQ to Objects
Data Developer Center
Entity Framework