Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porJuan Luis Valdéz Castellanos Modificado hace 8 años
1
Consultando Base de Datos con LINQ en C# Richard Jiménez V. Empresas América www.empresas-america.com linqucatec.wordpress.com
2
Richard Jiménez Velasco Lic. en Informática en la UMSS Maestría en Informática en la UMSS Especialidad en desarrollo de aplicaciones Multimedia en Okinawa - Japón UMSS ANB Banca y Finanzas Universidad Católica Boliviana, UPDS Empresas América.Net Software Developer
3
¿Conoces C#? ¿Lenguaje SQL? ¿Base de datos?
4
¿Qué es LINQ? La filosofía de LINQ Consultas en LINQ Sintaxis de LINQ Consultas sobre colecciones en memoria en LINQ Acceso a bases de datos con LINQ Integración con XML Practica en LINQ
6
El problema es que en la mayoría de los casos, al menos en lo bases de datos relacionales, existe una amplia brecha entre el lenguaje de programación O.O. y las base de datos. Paradigma Orientado a Objetos vs. Paradigma de Bases de datos relacionales.
7
USE empl REPLACE ALL salary WITH (salary * 1.1) FOR supervises > 0 LIST ALL fname, lname, salary FOR Supervises > 0 La consulta y manipulación de datos es una parte fundamental de la experiencia en el modelo de programación Tenía limitaciones, pero era útil
8
SqlCommand cmd = new SqlCommand( @"SELECT fname, lname, salary FROM Empl WHERE supervises > @p0" ); cmd.Parameters.AddWithValue("@po", 0); SqlConnection c = new SqlConnection(…); c.Open(); DataReader people = c.Execute(cmd); while (people.Read()) { string fname = (string) people[“fname”]; string lname = (string) people[“lname”]; double salary = (double) people[“salary”]; } dr.Close();
9
public class Employee { public string FirstName; public string LastName; public double Salaray; } IList employees = session.CreateCriteria(typeof(Employee)).Add(Expression.Gt(“supervises", 0).List(); foreach(Employee employee in employees) { string fname = employee.FirstName; string lname = employee.LastName; double salary = employee.Salary; } Mapea datos relacionales hacia/desde objetos Integración más clara de reglas de negocio y validaciones
10
Language Integrated Query (LINQ) Es un proyecto de Microsoft que agrega consultas nativas semejantes a las de SQL a los lenguajes de la plataforma.NET, inicialmente a los lenguajes Visual Basic.NET y C#.MicrosoftSQLplataforma.NETVisual Basic.NETC# LINQ define operadores de consulta estándar que permiten a lenguajes habilitados con LINQ filtrar, enumerar y crear proyecciones de varios tipos de colecciones usando la misma sintaxis. Tales colecciones pueden incluir vectores (arrays), clases enumerables, XML, conjuntos de datos desde bases de datos relacionales y orígenes de datos de terceros.vectores (arrays)clasesXMLbases de datos relacionales
11
Tipos fuertes Beneficios del IntelliSense Language INtegrated Queries Colecciones de objects Datos relacionales XML Queries integrados en el código (C#/VB) Queries Unificados
12
La intención de Microsoft con LINQ, es propor- cionar una solución para el problema del mapeo objeto-relacional, así como para simplificar la interacción entre los objetos y fuentes de datos. El objetivo de crear LINQ es permitir que todo el código hecho en Visual Studio (incluidas las llamadas a bases de datos, datasets, XMLs) sean también orientados a objetos.
13
Antes MySqlDataReader reg; string MyConString = "SERVER=" + ip + ";" + "DATABASE=“+db+"; "UID=“+user+“; PASSWORD=“+pass+”;”; MySqlConnection connection =new MySqlConnection(MyConString); MySqlCommand command = connection.CreateCommand(); command.CommandText = "SELECT * FROM responsable WHERE cod_resp='"+cod+"' AND usr_baja=''"; reg = command.ExecuteReader(); //Comandos connection.Close(); Con LINQ LinqDb1DataContext db = new LinqDb1DataContext(); var query = from resp in db.respo bable select resp;
14
Cómo traer datos no-relacionales? XML, RSS, Web Services, REST, AD, Files, etc. Cómo interactuar con objetos planos? Cómo interactura y consultar modelos de dominio personalizado? Cómo permitir darle forma y transformar los datos? Soportar composición flexible de queries Cómo permitir esto con código limpio en un mundo tanto tipificado como dinámico?
15
Operaciones de Consultas, Asignación y Transformación para.NET Convierte a la consulta de datos un concepto de programación fundamental Trabaja con todos los tipos y formas de datos Bases de datos relacionales XML Objetos Planos Trabaja con todos los lenguajes.NET Las nuevas versiones de VB y C# tienen soporte integrado en el lenguaje
16
Query Expression Method Queries Inferencia de Tipos Tipos Anónimos Expresiones Lambda Dos sintaxis para queries Métodos de Extensión
17
Project Select Select Filter Where, Distinct Order Order By, [ Ascending | Descending ] Aggregate Count([ ]), Sum( ), Min( ), Max( ), Avg( ) var todaysBirthday = from c in db.Customers where c.BirthDay == DateTime.Today orderby c.BirthDay select new { c.FullName, Age = DateTime.Today – c.BirthDay }; SELECT c.FullName, Age = getdate() – c.BirthDay FROM Customers c WHERE c.BirthDay = getdate() ORDER BY c.BirthDay
18
DEMO Hello LINQ
19
Acceso a Datos en Evolución Entendiendo LINQ to SQL Entendiendo LINQ to XML
20
Filas como objetos de negocio Tablas como colecciones Bases de Datos como DataContext Base de Datos TablaTabla DataContext ColecciónColección
21
DEMO Explorando LINQ to SQL
22
Acceso a Datos en Evolución Entendiendo LINQ to SQL Entendiendo LINQ to XML
23
No hay barrera conceptual XML vs. code Aprovecha experiencia con DOM Facilita los requerimientos de compatibilidad
24
XDocument XNamespace XComment XElement XAttribute
25
DEMO Trabajando con Datos XML
26
Más en: www.microsoft.com/learning/books
27
Centro de información de LINQ http://msdn.microsoft.com/data/ref/linq El blog más didáctico sobre LINQ http://weblogs.asp.net/scottgu Blogs de los creadores http://blogs.msdn.com/adonet http://blogs.msdn.com/data Mi blog http://linqucatec.wordpress.com
28
PREGUNTAS?
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.