1 / 13

The LINQ Project

The LINQ Project. Rafał Skoczylas. Plan prezentacji. Co to jest LINQ? Przykłady Podsumowanie LINQ-i ;). Co to jest LINQ? (1/2). W tradycyjnym podejściu: zapytania SQL pisze się w cudzysłowach brak sprawdzania poprawności w czasie kompilacji brak mocnego typowania

cato
Download Presentation

The LINQ Project

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The LINQ Project Rafał Skoczylas

  2. Plan prezentacji • Co to jest LINQ? • Przykłady • Podsumowanie • LINQ-i ;)

  3. Co to jest LINQ? (1/2) • W tradycyjnym podejściu: • zapytania SQL pisze się w cudzysłowach • brak sprawdzania poprawności w czasie kompilacji • brak mocnego typowania • brak podpowiadania kodu (IntelliSense itp.) • i wiele innych braków oraz problemów

  4. Co to jest LINQ? (2/2) • LINQ - Language INtegrated Query – nowy projekt Andersa Hejlsberga • Zapytania stają się częścią języka • Zunifikowany sposób dostępu do • Obiektów (IEnumerable) • Baz Danych • XML

  5. Przykład: Kolekcje i zapytania using System.Query; [...] Student[] students = School.GetStudents(); // query methods var q1 = students. where(s => s.Age ==23). select(s => s.Name); // query expressions var q2 = fromsinstudents wheres.Age ==23 selects.Name;

  6. Przykład: Projekcje [...] Student[] students = School.GetStudents(); var q1 = fromsinstudents wheres.Avg>= 4.75 select newScholarship(s.AlbumNumber, s.Avg); var q2 = fromsinstudents wheres.Avg>= 4.75 select new { s.AlbumNumber, s.Avg }; foreach (var s in q2) Console.WriteLine(s.AlbumNumber);

  7. Przykład: Baza Danych using System.Data.DLinq; Northwind db = newNorthWind(@"F:\northwind.mdf"); var q = from c in db.Customers where c.City == "London" select c.CompanyName;

  8. Przykład: XML (1/2) using System.Xml.XLinq; XElement e = newXElement("LibraryList", newXElement("Library", new XAttribute("Name", "PJWSTK") ) ); <LibraryList> <Library Name="PJWSTK" /> </LibraryList>

  9. Przykład: XML (2a/2) using System.Xml.XLinq; Student[] students = School.GetStudents(); XElement e = newXElement("Stypendia", from s in students where s.Avg >= 4.75 select newXElement("Student", newXAttribute("NumerIndeksu", s.AlbumNumber), newXAttribute("Średnia", s.Avg) ) );

  10. Przykład: XML (2b/2) <Stypendia> <Student NumerIndeksu="1239" Srednia="4.77" /> <Student NumerIndeksu="1543" Srednia="4.82" /> <Student NumerIndeksu="1731" Srednia="4.79" /> <Student NumerIndeksu="1832" Srednia="4.98" /> <Student NumerIndeksu="2534" Srednia="4.76" /> <Student NumerIndeksu="2374" Srednia="4.99" /> [...] </Stypendia>

  11. Przykład: Tips and Tricks var q1 = fromcinthis.Controls wherec.Enabled == false selectc;

  12. Podsumowanie • Słuszny kierunek na przyszłość • Wiele mechanizmów zapożyczonych z innych technologii: • FoxPro • Ruby • Python • LISP • Delphi

  13. LINQ-i ;) • The LINQ Projecthttp://msdn.microsoft.com/netframework/future/linq/ • C# LINQ Tech Preview Update for Visual Studio 2005 RTM Release • C# 3.0 Language Specification • 101 LINQ Sampleshttp://msdn.microsoft.com/vcsharp/future/linqsamples/ • Anders Hejlsberghttp://en.wikipedia.org/wiki/Anders_Hejlsberg

More Related