LINQ

Post on 23-Oct-2014

17 views 2 download

Tags:

Transcript of LINQ

Cornelio Cantera 2829

Montevideo - Uruguay

+(598 2) 480 6756

info@arkanosoft.com

www.arkanosoft.com

LINQConsultas integradas en los lenguajes

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

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

LINQ to XMLConsultas con datos jerárgicos

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

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.

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>

LINQ to DataSets

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)

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

LINQ to SQL

LINQ to SQL• Object relational mapping.

• Soporte transaccional, vistas y stored procedures.

• Cualquier DataSource

• Tipos y chequeo en tiempo de compilación

Ejemplo…

LINQ to Entities

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

Cornelio Cantera 2829

Montevideo - Uruguay

+(598 2) 480 6756

info@arkanosoft.com

www.arkanosoft.com