Uvod u LINQ TO SQL
U prethodnim člancima upoznali smo se sa osnovnim pojmovima koji predstavljaju LINQ. U ovom dijelu upoznat ćemo se sa primjenom LINQ na MS SQL. Primjena LINQ za SQL Microsoft je razvio posebnu tehnologiju koju je nazvao LINQ TO SQL. Naredni primjer prikazuje povezivanje baze podataka MS SQL servera sa klientskom aplikacijom. Pokrenimo Visual Studio 2008 Beta 2. Ukoliko ne posjedujete ovu verziju možete je skinuti sa microsoftove stranice http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx.
Iz menija File izaberite New, a iz podmenija odaberite Project.
Aktiviranjem ove opcije na ekranu se pojavljuje dijalog New Project. Iz desne liste stavki izaberite Windows Forms Application. U donjem dijelu dijaloga u polje edit kontrole unesite PrviLINQtoSQLProjekt, te kliknite na dugme OK.
Kada VS IDE završi kreiranje projekta, iz Solution Explorera kliknite desnom tipkom miša na Naziv projekta (kao na slici) te izaberite Add New Item kao na donjoj slici.
Add New Item dijalog se pojavljuje na ekranu, te iz liste stavki izaberite LINQ to SQL Classes, a u edit kontrolu u donjem dijelu unesite NorthWindKlase, kako je prikazano na sljedećoj slici.
Nakon klika na dugme Add, u VS IDE se pojavljuje Dizajner za import stavki iz baze podataka, kao na sljedećoj slici.
U Server Exploreru napravite konekciju na SQLEXPRESS te odaberite NorthWind bazu podataka. Ako ne posjedujete NorthWind bazu podataka možete je skinuti odavde. Poslije uspostavljanja konekcije proširite stavku Tables, te kao na slici, te povucite i spustite tabelu Orders. U dizajneru će se pojaviti dijagram klase, kao na narednoj slici.
Kada smo importovati tabelu Orders, proširite stavku Stored Procedures, te povucite i spustite u drugi dio dizajnera, stornu proceduru CustOrdersDetail, kao što prikazuje donja slika.
Nakon importa storne procedure, povucite i spustite tabelu Order_Detail, nakon čega će dizajner izgledati kao na narednoj slici.
Možemo primjetiti da je dizajner pored tabele Order_Detail formirao i relaciju između tabela, kao što je to definisano u samoj bazi podataka. Kada smo formirali klase koje predstavljaju tabele i funkcije baze podataka, potrebno je sada da izvučemo podatke iz baze podataka. To ćemo učiniti tako što će mo preko DataGridView kontrole prikazati podatke iz baze podataka. Prije toga ćemo iz menija Data aktivirati opciju Show Data Sources, te će nam se pojaviti usidreni prozor DataSource, kao na narednoj slici. Aktiviranjem hiperlinka u istom prozoru pojaviće nam se čarobnjak za importovanje tabela u Data Source prozor,preko kojeg ćemo povezati DataGridView kontrolu sa bazom podataka.
Odaberimo stavku Object, kao na narednoj slici, te kliknimo na dugme Next.
U sljedećem prozoru, potražimo klasu Order, odaberimo je te kliknimo na dugme Finish. Ovaj korak je slikovno prikazan na narednoj slici.
Otvorimo iz Solution Explorera Form1 stavku. Sada naš DataSource prozor izgleda ka na sljedećoj slici. Povucimo i spustimo Order klasu iz datasource prozora u formu. Dizajner nam generira DataGridView kontrolu, te navigator kontrolu, kao na sljedećoj slici.
Klikni mo na DataGridView kontrolu desnom tipkom te odaberimo Properties opciju iz kontekstnog menija. U Properties prozoru odaberimo osobinu Dock, te podesimo je na Fill. Nakon ovih akcija koje smo uradili, ostaje nam još samo da napišemo tri linije koda, i naša aplikacije je povezana sa bazom podataka i spremna da prikaže podatke. Implementirajmo događaj FormLoad, te otvorimo Form1.cs datoteku. Definišimo član dbContest, klase NorthWindDataContext u klasi Form1. U metodi koja predstavlja događaj FormLoad, napišimo LINQ kao na sljedećoj slici. Pridružimo DataSource članu od BindingSource LINQ query, kao na narednoj slici.
Kompajlirajte i pokrenite aplikaciju.
Aplikacija treba da izgleda kao na narednoj slici.
U ovom jednostavnom primjeru vidjeli smo kako povezati klijentsku aplikaciju sa bazom podataka u samo tri linije koda, dok smo ostale akcije realizirali pomoću moćnih dizajnera VS IDE.