linq ( language-integrated query )
DESCRIPTION
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ść. - PowerPoint PPT PresentationTRANSCRIPT
LINQ (Language-INtegrated Query)
Marcin Bohdziewicz s4070
Architektura LINQ
ZaletyUniwersalnośćRozszerzalnośćPoprawność koduPodniesienie poziomu abstrakcji
UniwersalnośćLINQ to ObjectsLINQ to SQLLINQ to XMLLINQ to DataSetsLINQ to Entities
RozszerzalnośćLINQ to AmazonLINQ to FlickrDbLinq: LINQ to MySQL,
PostgreSQL, Oracle, Ingres, SQLite
LINQ to GoogleLINQ to System SearchEtc.
Poprawność koduSqlCommand 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.5Metody rozszerzająceWyrażenia LambdaTypy anonimowe
OperatorySelectWhereSumJoinTakeGroupByOrderByEtc.
Zapytania i metodyvar results = from w in wordswhere w.Contains(„z”)select w;
var results = words.Where( w => w.Contains(„z”) ).Select( w => w );
Porównanie:List<EmployeeDetails> employees = db.GetEmployees();
List<EmployeeDetails> matches = new List<EmployeeDetails> ();
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;