LINQ – V DIO LINQ TO SQL


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.

lintosql1

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.

lintosql2

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.

lintosql3

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.

lintosql4

Nakon klika na dugme Add, u VS IDE se pojavljuje Dizajner za import stavki iz baze podataka, kao na sljedećoj slici.

lintosql5

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.

lintosql6

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.

lintosql7

Nakon importa storne procedure, povucite i spustite tabelu Order_Detail, nakon čega će dizajner izgledati kao na narednoj slici.

lintosql8

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.

lintosql9

Odaberimo stavku Object, kao na narednoj slici, te kliknimo na dugme Next.

lintosql10

U sljedećem prozoru, potražimo klasu Order, odaberimo je te kliknimo na dugme Finish. Ovaj korak je slikovno prikazan na narednoj slici.

lintosql11

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.

lintosql12

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.

lintosql13

Kompajlirajte i pokrenite aplikaciju.

Aplikacija treba da izgleda kao na narednoj slici.

lintosql14

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.

About Bahrudin Hrnjica

PhD in Mechanical Engineering, Microsoft MVP for .NET. Likes .NET, Math, Mechanical Engineering, Evolutionary Algorithms, Blogging.

Posted on 08/10/2007, in .NET, C# and tagged , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s