LINQ (Language-INtegrated Query) Marcin Bohdziewicz s4070
Architektura LINQ
Zalety Uniwersalność Rozszerzalność Poprawność kodu Podniesienie poziomu abstrakcji
Uniwersalność LINQ to Objects LINQ to SQL LINQ to XML LINQ to DataSets LINQ to Entities
Rozszerzalność LINQ to Amazon LINQ to Flickr DbLinq: LINQ to MySQL, PostgreSQL, Oracle, Ingres, SQLite LINQ to Google LINQ to System Search Etc.
Poprawność kodu SqlCommand command = new SqlCommand("SELEECT * FROM [dbo].[Tabela]);
Podniesienie poziomu abstrakcji Różni dostawcy – różna składnia SqlConnection sqlConnection = new SqlConnection(); MySqlConnection mySqlConnection = new MySqlConnection(); SqlCommand sqlCommand = new SqlCommand("SELECT TOP 10 * FROM [dbo].[Tabela]"); MySqlCommand mySqlCommand = new MySqlCommand("SELECT * FROM Tabela LIMIT 10");
Nowości w.NET 3.5 Metody rozszerzające Wyrażenia Lambda Typy anonimowe
Operatory Select Where Sum Join Take GroupBy OrderBy Etc.
Zapytania i metody var results = from w in words where w.Contains(z) select w; var results = words.Where( w => w.Contains(z) ).Select( w => w );
Porównanie: List employees = db.GetEmployees(); List matches = new List (); Foreach (EmployeeDetails employee in employees){ if ( employee.LastName.StartsWith(D)){ matches.Add(employee); } matches = from employee in employees where employee.LastNAme.StartsWith(D) select employee;