LINQ to DataSet Kereskényi Róbert kereskenyi.robert@aut.bme.hu MSDN Konferencia: Windows Vista és .NET 3.0 fejlesztőknek Visual Studio "Orcas" KonferenciaMSDN Kompetenciák Egyeteme: ASP.NET AJAX 2006.11.30. Lurdy Ház 2007. május 24., Budapest Lurdy Ház2007. február 8-9. MSDN Kompetencia Központ Visual Studio "Orcas" Konferencia 2007. május 24., Budapest Lurdy Ház LINQ to DataSet Kereskényi Róbert kereskenyi.robert@aut.bme.hu MSDN Kompetencia Központ Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék MSDN Kompetencia Központ (http://www.devPORTAL.hu) 1
.NET Language Integrated Query LINQ C# 3.0 VB 9.0 Others… .NET Language Integrated Query LINQ to Objects LINQ to DataSet LINQ to SQL LINQ to Entities LINQ to XML <book> <title/> <author/> <year/> <price/> </book> Relational Objects Objects Relational XML
? Hol jön a képbe? DataSet Adatforrás UI / Middle Tier LINQ to DataSet Visual Studio "Orcas" KonferenciaMSDN Kompetenciák Egyeteme: ASP.NET AJAX 2007. május 24., Budapest Lurdy Ház2007. február 8-9. MSDN Kompetencia Központ Hol jön a képbe? DataSet Adatforrás (MS-SQL 2005, WCF Service, XML) ? UI / Middle Tier (ASP.NET, Windows Forms, WPF) LINQ to DataSet MSDN Kompetencia Központ (http://www.devPORTAL.hu)
DataSet lekérdezések .NET 2.0 .NET 3.5 Select Visual Studio "Orcas" KonferenciaMSDN Kompetenciák Egyeteme: ASP.NET AJAX 2007. május 24., Budapest Lurdy Ház2007. február 8-9. MSDN Kompetencia Központ DataSet lekérdezések .NET 2.0 Select GetChildRows, GetParentRow (DataSet.Tables[…].Rows[…].~) Find, FindRows, RowFilter (DataSet.Tables[…].DefaultView.~) .NET 3.5 LINQ MSDN Kompetencia Központ (http://www.devPORTAL.hu)
DataSet – LINQ lekérdezés Visual Studio "Orcas" KonferenciaMSDN Kompetenciák Egyeteme: ASP.NET AJAX 2007. május 24., Budapest Lurdy Ház2007. február 8-9. MSDN Kompetencia Központ DataSet – LINQ lekérdezés DataTable orders = ds.Tables["SalesOrderHeader"]; var query = from o in orders.AsEnumerable() where o.Field<bool>("OnlineOrderFlag") == true select new { SalesOrderID = o.Field<int>("SalesOrderID"), OrderDate = o.Field<DateTime>("OrderDate"), SalesOrderNumber = o.Field<string>("SalesOrderNumber") }; foreach (var onlineOrder in query) Console.WriteLine("Order ID: {0} Order date: {1:d} Order number: {2}", onlineOrder.SalesOrderID, onlineOrder.OrderDate, onlineOrder.SalesOrderNumber); } MSDN Kompetencia Központ (http://www.devPORTAL.hu)
LINQ – DataSet lekérdezés Visual Studio "Orcas" KonferenciaMSDN Kompetenciák Egyeteme: ASP.NET AJAX 2007. május 24., Budapest Lurdy Ház2007. február 8-9. MSDN Kompetencia Központ LINQ – DataSet lekérdezés .AsEnumerable() DataSet IEnumerable<T> DataRow szekvencia a bemenet és a kimenet is Field, SetField Generikus, típusos, nullable adatelérés Query kifejezés / Metódus hívás MSDN Kompetencia Központ (http://www.devPORTAL.hu)
DataSet LINQ lekérdezések Visual Studio "Orcas" KonferenciaMSDN Kompetenciák Egyeteme: ASP.NET AJAX 2007. május 24., Budapest Lurdy Ház2007. február 8-9. MSDN Kompetencia Központ DataSet LINQ lekérdezések Egy táblás / több táblás Join, GroupJoin Halmazműveletek Distinct, Union, Intersect, Except Particionálás Skip, SkipWhile, Take, TakeWhile Rendezés OrderBy [descending], Reverse, ThenBy [descending] MSDN Kompetencia Központ (http://www.devPORTAL.hu)
DataSet LINQ lekérdezések Visual Studio "Orcas" KonferenciaMSDN Kompetenciák Egyeteme: ASP.NET AJAX 2007. május 24., Budapest Lurdy Ház2007. február 8-9. MSDN Kompetencia Központ DataSet LINQ lekérdezések Konverzió ToArray, ToDictionary, ToList Elem ElementAt, First Aggregáció Aggregate, Average, Count, LongCount, Max, Min, Sum MSDN Kompetencia Központ (http://www.devPORTAL.hu)
DataSet specifikus kiegészítések Visual Studio "Orcas" KonferenciaMSDN Kompetenciák Egyeteme: ASP.NET AJAX 2007. május 24., Budapest Lurdy Ház2007. február 8-9. MSDN Kompetencia Központ DataSet specifikus kiegészítések CopyToDataTable DataRowComparer AsEnumerable Field, SetField MSDN Kompetencia Központ (http://www.devPORTAL.hu)
demo Egytáblás lekérdezés Több táblás lekérdezés Halmazművelet Merge 10
Pro és kontra Előnyök Hátrányok láttuk… Adatkötés!!! Egyszeri leképzés Visual Studio "Orcas" KonferenciaMSDN Kompetenciák Egyeteme: ASP.NET AJAX 2007. május 24., Budapest Lurdy Ház2007. február 8-9. MSDN Kompetencia Központ Pro és kontra Előnyök láttuk… Hátrányok Adatkötés!!! Egyszeri leképzés Nincs vissza irány az adatforrás felé Adatforrás változások nem reprezentálódnak MEGOLDÁS CopyToDataTable MSDN Kompetencia Központ (http://www.devPORTAL.hu)
DataSet jövője avagy ennyi volt, itt a vége? Tovább él: NEM Visual Studio "Orcas" KonferenciaMSDN Kompetenciák Egyeteme: ASP.NET AJAX 2007. május 24., Budapest Lurdy Ház2007. február 8-9. MSDN Kompetencia Központ DataSet jövője avagy ennyi volt, itt a vége? NEM Tovább él: SqlCacheDependency XmlSerialization Xml Integration DataView Számított értékek MSDN Kompetencia Központ (http://www.devPORTAL.hu)
Összefoglalás LINQ megvalósítás DataSet felett Jól használható, produktív Összetett lekérdezések is könnyen megfogalmazhatók Speciális DataSet kiegészítések DataSet van / volt / lesz
További információk Fejlesztői Portál – devPORTAL{..} http://www.devportal.hu LINQ Project honlap http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx 101 LINQ Samples http://msdn2.microsoft.com/en-us/vcsharp/aa336746.aspx LINQ Project Forum http://forums.microsoft.com/msdn/showforum.aspx?forumid=123&siteid=1 Anders Hejlsberg interjú a LINQ-ről http://channel9.msdn.com/showpost.aspx?postid=114680 Visual Studio Code Name „Orcas” letöltések http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx 14
Kérdések és válaszok Kérjük írja meg részletes véleményét az előadással kapcsolatban az értékelőlapon! 15
MSDN Konferencia: Windows Vista és .NET 3.0 fejlesztőknek Visual Studio "Orcas" KonferenciaMSDN Kompetenciák Egyeteme: ASP.NET AJAX MSDN Konferencia: Windows Vista és .NET 3.0 fejlesztőknek 2007. május 24., Budapest Lurdy Ház2007. február 8-9. MSDN Kompetencia Központ 2006.11.30. Lurdy Ház © 2007 Microsoft Corporation. Minden jog fenntartva. Az előadás csupán tájékoztató jellegű, a Microsoft Magyarország a benne szereplő esetleges hibákért vagy tévedésekért semmilyen felelősséget nem vállal. MSDN Kompetencia Központ (http://www.devPORTAL.hu) 16