Majowa wersja LINQ wspiera DataSet i ma projektanta do DLINQ

LINQ to bardzo ciekawa biblioteka pozwalająca w ujednolicony sposób "zadawać" zapytania do różnych pojemników z danymi - dokumentów XML, kolekcji, baz danych itp. Mechanizm wykorzystuje koncepcje wyrażeń lambda , metod-rozszerzeń, inferencji typów i tak naprawdę jest rozszerzeniem języka - w tym przypadku C# i VB.NET.

Najważniejsze -że można będzie łączyć różne pojemniki i powiedzieć "pokaż te rekordy z bazy danych których identyfikatory są zawarte w tej kolekcji".

Składa się z 3 elementów: LINQ (obiekty), DLINQ (bazy danych), XLINQ (dokumenty XML).

Technologia po raz pierwszy pojawiła się na PDC 2005. W wersji majowej dodane zostały mechanizmy obsługujące DataSet oraz m. innymi projektant do DLINQ. DLINQ najpierw musi wygenerować odpowiednią strukturę "relacyjną" dla bazy danych by można było potem korzystać z motoru LINQ i wybierać odpowiednie podzbiory. W wersji z PDC - był dostępny tylko generator z linii poleceń; tu - jest dostępny stosowny "designer" z poziomu VS.NET 2005.

LINQ pozwala na przykład użyć takiej składni:

var namesAndOrderIDs =

customers.

Where(c => c.Country == "Denmark").

SelectMany(c => c.Orders).

Where(o => o.OrderDate.Year == 2005).

Select(o => new { o.Customer.Name, o.OrderID });

var result = from s in Process.GetProcesses()

orderby s.ProcessName

select s;

foreach (var r in result) {r ... r.PagedMemorySize64);}

var result1 = from s in Process.GetProcesses()

orderby s.ProcessName

select new {Nazwa=s.ToString()

Info = "I: " + s.ProcessName.Length};

foreach (...) {r.Nazwa ... r.Info);}

int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

int oddNumbers = numbers.Count(n => n % 2 == 1);

Wersja majowa zawiera także debugger, mechanzimy wspierające data binding oraz łatwo ją można użyć z poziomu ASP.NET. Warto dodać, że te wszystkie mechanizmy działają na tym samym runtime co .NET 2.0 (nie zmienia się wersja MSIL).

Aby ściągnąć wersję LINQ należy pobrać:http://www.microsoft.com/downloads/details.aspx?familyid=1e902c21-340c-4d13-9f04-70eb5e3dceea&displaylang=en

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200