Transcript
Page 1: SQLSaturday #253 | Brasília 2013 - Entenda LINQ (Language-Integrated Query) e sua sintaxe na linguagem C#

Entenda LINQ (Language-IntegratedQuery) e sua sintaxe na linguagem C#

Rogério Moraes de CarvalhoVITA Informática

http://rogeriomc.wordpress.com

@rogeriomc

Page 2: SQLSaturday #253 | Brasília 2013 - Entenda LINQ (Language-Integrated Query) e sua sintaxe na linguagem C#

Agenda

O que é LINQ?

Entity Framework e LINQ para Entidades

LINQ para XML

LINQ para Objetos

Demonstração

Recursos

Page 3: SQLSaturday #253 | Brasília 2013 - Entenda LINQ (Language-Integrated Query) e sua sintaxe na linguagem C#

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

Page 4: SQLSaturday #253 | Brasília 2013 - Entenda LINQ (Language-Integrated Query) e sua sintaxe na linguagem C#

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 …

Page 5: SQLSaturday #253 | Brasília 2013 - Entenda LINQ (Language-Integrated Query) e sua sintaxe na linguagem C#

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

Page 6: SQLSaturday #253 | Brasília 2013 - Entenda LINQ (Language-Integrated Query) e sua sintaxe na linguagem C#

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

Page 7: SQLSaturday #253 | Brasília 2013 - Entenda LINQ (Language-Integrated Query) e sua sintaxe na linguagem C#

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

Page 8: SQLSaturday #253 | Brasília 2013 - Entenda LINQ (Language-Integrated Query) e sua sintaxe na linguagem C#

Recursos

Microsoft Developer Network

101 LINQ Samples

MSDN Library

LINQ (Language-Integrated Query)

LINQ to XML

LINQ to Objects

Data Developer Center

Entity Framework


Top Related