Download - LINQ ( Language-INtegrated Query )
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;