LINQ

18
Cornelio Cantera 2829 Montevideo - Uruguay +(598 2) 480 6756 [email protected] www.arkanosoft.com

Transcript of LINQ

Page 1: LINQ

Cornelio Cantera 2829

Montevideo - Uruguay

+(598 2) 480 6756

[email protected]

www.arkanosoft.com

Page 2: LINQ

LINQConsultas integradas en los lenguajes

Page 3: LINQ

Algunas Características• Capacidad de consulta a VB y C#. Elimina distancia entre modelo

relacional y de objetos

• Consulta y actualización de datos

• Comprobación de tipos en tiempo de compilación

• Un lenguaje para cualquier tipo de datos

• LINQ to SQL

• LINQ to XML

• LINQ to Dataset

• LINQ to Objects

• LINQ to Entities

Page 4: LINQ
Page 5: LINQ

Operadores de Consulta BásicosRestriction Where

Grouping GroupBy

Quantifiers Any, All

Conversion ToArray, ToList, ToDictionary

Partitioning Take, Skip, TakeWhile, SkipWhile

Sets Distinct, Union, Intersect, Except

Elements First, FirstOrDefault, ElementAt

Aggregation Count, Sum, Min, Max, Average

Ordering OrderBy, ThenBy

Projection Select, SelectMany

Casting Cast, OfType

Page 6: LINQ

LINQ to XMLConsultas con datos jerárgicos

Page 7: LINQ

Ejemplo• Menos código, que a su vez resulte más expresivo, compacto y eficaz

• Recuperar colecciones de elementos y atributos

Dim partNos = _ From item In purchaseOrder...<Item> _ Select item.@PartNumber

Dim partNos = _ From item In purchaseOrder...<Item> _ Where (item.<Quantity>.Value * _ item.<USPrice>.Value) > 100 _ Order By item.<PartNumber>.Value _ Select item

Page 8: LINQ

Programación XML • Cargar XML a partir de archivos o secuencias.

• Serializar XML a archivos o secuencias.

• Crear árboles XML desde cero mediante la construcción funcional.

• Realizar consultas de XML con ejes de tipo XPath.

• Manipular el árbol XML en memoria.

• Validar árboles XML mediante XSD.

• Usar una combinación de estas características para transformar las

formas de los árboles XML.

Page 9: LINQ

Creación de Arboles XML Dim contacts = _ <Contacts> <Contact> <Name>Patrick Hines</Name> <Phone Type="Home">206-555-0144</Phone> <Phone Type="Work">425-555-0145</Phone> <Address> <Street1>123 Main St</Street1> <City>Mercer Island</City> <State>WA</State> <Postal>68042</Postal> </Address> </Contact> </Contacts>

Page 10: LINQ

LINQ to DataSets

Page 11: LINQ

LINQ to DataSets• Permite joins entre tablas

• Soporte para DataSets y DataSets tipados

• Incluye métodos de extensión para cargar datos de manera simple a una

DataTable:• LoadSequence: Carga datos en una Datatable

• ToDataTable: Convierte cualquier IEnumerable<T> en una DataTable creada.• Otros: • DataTable: DistinctRows, EqualAllRows, ExceptRows, IntersectRows, UnionRows• DataRow: Field<T> (leer un campo), SetField<T> (setear un campo)

Page 12: LINQ

LINQ to DataSets' Fill the DataSet.Dim ds As New DataSet()ds.Locale = CultureInfo.InvariantCultureFillDataSet(ds)

Dim contactTable As DataTable = ds.Tables("Contact")Dim query = _ From contact In contactTable.AsEnumerable() _ Where contact.Field(Of String)("Title") = "Ms." _ And contact.Field(Of String)("FirstName") = "Carla" _ Select contact

Dim contacts = query.CopyToDataTable().AsEnumerable()

For Each contact In contacts Console.Write("ID: " & contact.Field(Of Integer)("ContactID")) Console.WriteLine(" Name: " & contact.Field(Of String)("LastName") & _ ", " & contact.Field(Of String)("FirstName"))Next

Page 13: LINQ

LINQ to SQL

Page 14: LINQ

LINQ to SQL• Object relational mapping.

• Soporte transaccional, vistas y stored procedures.

• Cualquier DataSource

• Tipos y chequeo en tiempo de compilación

Ejemplo…

Page 15: LINQ

LINQ to Entities

Page 16: LINQ

LINQ to Entities• Trabajar con datos en forma de objetos y propiedades

• Transparente para el programador las tablas que están atrás.

• Errores en tiempo de compilación

Page 18: LINQ

Cornelio Cantera 2829

Montevideo - Uruguay

+(598 2) 480 6756

[email protected]

www.arkanosoft.com