LINQ
-
Upload
principe-xizor -
Category
Documents
-
view
17 -
download
2
Transcript of LINQ
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
Referencias•
http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part
-1.aspx
• http://msdn.microsoft.com/en-us/netframework/aa904594.aspx
•