sqlsaturday #253 | brasília 2013 - entenda linq (language-integrated query) e sua sintaxe na...

Post on 24-May-2015

1.225 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Esta foi a minha segunda palestra no evento SQLSaturday #253 | Brasília 2013 e foi realizada na trilha Acadêmico no dia 28/09/2013 (sábado), das 14h às 15h10. Eu apresentei as vantagens da integração do LINQ na linguagem C#, bem como em outras linguagens da plataforma .NET, e o poder fornecido na consulta de fontes de dados variadas: bancos de dados relacionais, como SQL Server, Oracle e DB2, arquivos XML e coleções de objetos .NET na memória, dentre outras. A grande vantagem está na capacidade de fornecer uma semântica similar à da linguagem SQL (Structured Query Language) utilizada em bancos de dados relacionais para a linguagem C#. Sendo assim, se houve um LINQ provider para uma fonte de dados, então você pode usar o poder do LINQ para fazer consultas com uma semântica similar à do SQL.

TRANSCRIPT

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

top related