Transcript
Page 1: LINQ ( Language-INtegrated Query )

LINQ (Language-INtegrated Query)

Marcin Bohdziewicz s4070

Page 2: LINQ ( Language-INtegrated Query )

Architektura LINQ

Page 3: LINQ ( Language-INtegrated Query )

ZaletyUniwersalnośćRozszerzalnośćPoprawność koduPodniesienie poziomu abstrakcji

Page 4: LINQ ( Language-INtegrated Query )

UniwersalnośćLINQ to ObjectsLINQ to SQLLINQ to XMLLINQ to DataSetsLINQ to Entities

Page 5: LINQ ( Language-INtegrated Query )

RozszerzalnośćLINQ to AmazonLINQ to FlickrDbLinq: LINQ to MySQL,

PostgreSQL, Oracle, Ingres, SQLite

LINQ to GoogleLINQ to System SearchEtc.

Page 6: LINQ ( Language-INtegrated Query )

Poprawność koduSqlCommand command = new SqlCommand("SELEECT * FROM [dbo].[Tabela]”);

Page 7: LINQ ( Language-INtegrated Query )

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");

Page 8: LINQ ( Language-INtegrated Query )

Nowości w .NET 3.5Metody rozszerzająceWyrażenia LambdaTypy anonimowe

Page 9: LINQ ( Language-INtegrated Query )

OperatorySelectWhereSumJoinTakeGroupByOrderByEtc.

Page 10: LINQ ( Language-INtegrated Query )

Zapytania i metodyvar results = from w in wordswhere w.Contains(„z”)select w;

var results = words.Where( w => w.Contains(„z”) ).Select( w => w );

Page 11: LINQ ( Language-INtegrated Query )

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;


Top Related