linq ( language-integrated query )

11
LINQ (Language- INtegrated Query) Marcin Bohdziewicz s4070

Upload: niran

Post on 06-Feb-2016

77 views

Category:

Documents


0 download

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 Presentation

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;