La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Consultando Base de Datos con LINQ en C# Richard Jiménez V. Empresas América www.empresas-america.com linqucatec.wordpress.com.

Presentaciones similares


Presentación del tema: "Consultando Base de Datos con LINQ en C# Richard Jiménez V. Empresas América www.empresas-america.com linqucatec.wordpress.com."— Transcripción de la presentación:

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

5

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?


Descargar ppt "Consultando Base de Datos con LINQ en C# Richard Jiménez V. Empresas América www.empresas-america.com linqucatec.wordpress.com."

Presentaciones similares


Anuncios Google