Savjet za učenje baza podataka te pristupa iz C#

poruka: 26
|
čitano: 14.574
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
Savjet za učenje baza podataka te pristupa iz C#

Pozdrav,dakle nakon jedno 5 mjeseci c++ -a preša sam na C# a nakon par mjeseci rada u njemu vidim da moram pocet ucit baze podataka jer ne mogu nista bez njih.Zasad sam pogleda jedan Srpski tutorial,tj jedno 3-4 sata videotutoriala o radu s bazama u accessu (s ovog kanala :  https://www.youtube.com/playlist?list=PLB9C8359B0E855B19&feature=plcp )  i sad znam donekle radit u accesu i znam o čemu se radi međutim to mi sve još uvjek nije sjelo kako bog zapovida,sve mi je zbrčkano u glavi.Iša sam na pluralsight radit LINQ tutoriale jer mi je dosta prijatelja reklo da se zasad nije potrebno zamarat SQL-om. Primjetia da mi jednostavno fali znanja za pratit te tutove.Moram još malo radit baze i ispraksirat se.Da li imate kakvih savjeta ili videotutoriala prema kojima bi moga radit? te čak ideju za neku vježbu?

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Moj PC  
0 0 hvala 0
15 godina
odjavljen
offline
Re: Savjet za učenje baza podataka te pristupa iz

Zašto video tutoriali, jooooj :/

 

Imaš dosta dobrih knjiga koje se bave sa ADO.Net tj. radom sa bazama. Pogledaj onu temu literatura za programiranje, dao sam link na neku C# ebook (besplatnu) gdje je dosta detaljno (i jednostavno, školski) objašnjen rad sa Access i SQL bazama. Osim te, ima i Wroxova C# 2010 koja je također odlična ali i košta.

 

Osim Accessa i SQLa bih ti preporučio sqlite3 koji je daleko jednostavniji od "pravog" SQLa. Jednostavniji u smislu da ti ne treba SQL server (instaliran i pokrenut) nego ti je dovoljan sqlite3.dll u referencama. sqlite drži bazu u jednom fajlu ali mu se pristupa preko SQL jezika tj. preko LINQtoSQL.

 

BTW, zašto si otvarao novu temu, ima ona C# pitanja i odgovori. Ovo je komotno moglo tamo.

 

[edit] - ja imam Wroxovu C# .net 4.0 od 1800 i nešto sitno stranica u PDFu

http://nighthawk-software.blogspot.com/
Poruka je uređivana zadnji put uto 17.4.2012 22:13 (Sum_of_all_fears).
12 godina
neaktivan
offline
Re: Savjet za učenje baza podataka te pristupa iz

Radi taj playlist. Bez SQL-a nećeš daleko. Ukoliko znaš logičke osnove relacionog modeliranja, nema veze da li je Access ili SQL Server. Što se SQL-a tiče, on je relativno jednostavan. Skini Server, Management Studio i udri po bazama. Pitat ću ga da mi da neke materijale pa ti proslijedim na FB.

Uči i LINQ-u i ADO.NET EF, nije teško, nema potrebe orjentisati se samo na jednu tehnologiju trenutno. Uči paralelno, SQL, C# i ASP.NET.

 

EDIT:

Da knjige su zakon, vidi to su materijali samo za studente, oni su odslušali predavanja dobili njegovu knjigu... Ovo im je samo vježba.
Wroxove i Apressove knjige nek ti budu prioritet, ja sam radio po  Wroxovoj od 750 stranica, ispod toga ništa.

Poruka je uređivana zadnji put uto 1.1.2013 21:35 (royalhero).
14 godina
neaktivan
offline
Savjet za učenje baza podataka te pristupa iz C#

a evo sad sam proša još par LINQ tutoriala i sjeda sve,nije tesko. Vidit cu valjda cu se snac.Samo mi nisu još neke osnovne stvari jasne.Prijatelj mi je objašnjava kako ja LINQ mogu koristit za pristupanje kolekciji a kolekcija automatski koristi SQL za pricanje s bazom i da meni sql tu može dobro doć za dodatne mogućnosti al da je još rano za zamaranje s njime.Sad kolekcija - baza :/ ???

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Moj PC  
0 0 hvala 0
12 godina
neaktivan
offline
Re: Savjet za učenje baza podataka te pristupa iz

Ma uči SQL, čega se bojiš?

14 godina
neaktivan
offline
Re: Savjet za učenje baza podataka te pristupa iz
royalhero kaže...

Ma uči SQL, čega se bojiš?

a uporan li si brate, nitko od ekipe mi ne radi s sql-om a ja još nisam dovoljno duboko uša u baze da shvatim prednosti sql-a. Kad s uhodam s LINQ-om  po potrebi mogu ucit sql.

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
12 godina
neaktivan
offline
Re: Savjet za učenje baza podataka te pristupa iz

Ma o čemu ti pričaš, brkaš stvari. Znaš li uopšte šta je LINQ.

Kakve veze ima ekipa?... Šta te briga ko šta korisiti, ko ti god kaže da ti SQL ne treba pljuni ga u facu i reci mu da je glup. Potraži Wroxovu knjigu o SQL Serveru, u njima imaš dobro objašnjen i L2SQL i ADO.NET EF.

Sve je zasnovano na SQL-u pa i sam Access, samo što si ti "gore" i upravljaš kroz GUI.

Šta bi trebalo značiti, prednosti SQL-a?. Idi odma radi SQL, C# i ASP.NET, paralelno, potonje opcionalno.

14 godina
neaktivan
offline
Re: Savjet za učenje baza podataka te pristupa iz
royalhero kaže...

Ma o čemu ti pričaš, brkaš stvari. Znaš li uopšte šta je LINQ.

Kakve veze ima ekipa?... Šta te briga ko šta korisiti, ko ti god kaže da ti SQL ne treba pljuni ga u facu i reci mu da je glup. Potraži Wroxovu knjigu o SQL Serveru, u njima imaš dobro objašnjen i L2SQL i ADO.NET EF.

Sve je zasnovano na SQL-u pa i sam Access, samo što si ti "gore" i upravljaš kroz GUI.

Šta bi trebalo značiti, prednosti SQL-a?. Idi odma radi SQL, C# i ASP.NET, paralelno, potonje opcionalno.

Ne,mislim da neću pljunit u facu nekoga ko sa 20 god zarađuje dovoljno da može živit od programiranja.Poštujem njihovo mišljenje više od tvojeg i tome se nemoj čudit.A reka sam ti pusti me da malo dublje uđem u baze i izvježbam ih pa mogu sam odlučit šta da učim.Uostalom kad stavim temu na forum onda nemoj postat u nju jer možepš pretpotstavit da sam vamo doša po alternativno mišljenje.Ti mi možeš reć sve šta imaš na facebooku.

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
12 godina
neaktivan
offline
Re: Savjet za učenje baza podataka te pristupa iz

Radi šta god 'oćeš, budi Bog s tobom...

Ne znam ja ko zarađuje sa 20 godina, i slične stvari, ali znam da bez SQL-a nema ništa. Pogledaj temu Vaši programerski radovi.

A Friday je C# programer, čovjek radi na značajnim projektima, TracerCPP isto, tankir, sasa, Sum, woodgame, zoran... Nek se niko ne uvrjedi Svi znaju SQL, sigurno.          Ali zašto odmah ne kreneš sa SQL-om, još kažeš da znaš osnove baza.

13 godina
neaktivan
offline
Re: Savjet za učenje baza podataka te pristupa iz
athlon64 kaže...

Ne,mislim da neću pljunit u facu nekoga ko sa 20 god zarađuje dovoljno da može živit od programiranja.Poštujem njihovo mišljenje više od tvojeg i tome se nemoj čudit.A reka sam ti pusti me da malo dublje uđem u baze i izvježbam ih pa mogu sam odlučit šta da učim.Uostalom kad stavim temu na forum onda nemoj postat u nju jer možepš pretpotstavit da sam vamo doša po alternativno mišljenje.Ti mi možeš reć sve šta imaš na facebooku.

Ljudi su ti dali savjete za baze podataka. koristi ih.

 

Ja cu ti jos naves basic knjigu: "Teach Yourself SQL in 21 Days"....

 

a drugo sto bi savjetovao sto se baza tice: ZABORAVI neke okrljastene bazice, uzim pravu bazu, imas free edition od oracle-a itd.

 

a kao zadnji savjet: probaj ucit ANSI SQL, odnosno, nastoj trosit sto manje DataBase specific sql naredbe u fazi ucenja.

12 godina
neaktivan
offline
Re: Savjet za učenje baza podataka te pristupa iz
Test user kaže...
a drugo sto bi savjetovao sto se baza tice: ZABORAVI neke okrljastene bazice, uzim pravu bazu, imas free edition od oracle-a itd.

Pošto radi C#, namjerava ASP.NET, bar tako kaže, ja mu preporučujem SQL Server Developer. Koja se sa DreamSparka može skinuti besplatno, ekvivalent je punokrvnoj verziji, ali za testiranje i edukaciju. A za njegove potrebe, ma i za puno veće Express edition je odličan.
Što se knjige tiče, imam zamjerku za to 21 dan. Uzmi neku knjigu od Wroxa, tipa:
http://www.wrox.com/WileyCDA/WroxTitle/Beginning-Microsoft-SQL-Server-2008-Programming.productCd-0470257016.html

 

Ili kao što Sum kaže, SQL Lite, uključiš u projekt samo dll fajl i to je to. Ali on tek treba da uči SQL, nuđenje nekih posebnih mogućnosti je suvišno.

Kao što sigurno znaš, SQL je de facto jezik za baze, i u SQL Servera, MySQL-a, Postgrea, Oracle-a... ti treba SQL, kao što je kolega iznad rekao, uči nativni SQL, ne neke extra funkcije, MS je u svoj SQL, T-SQL dodao neke stvari iz Basica, ifove, loopove... To bih ja izbjegavao i izbjegavam sve se može nativnim, ANSI SQL-om.

14 godina
neaktivan
offline
Savjet za učenje baza podataka te pristupa iz C#

dakle uglavnom sad radim LINQ course na pluralsightu (jednostavna stvar) pa cu probat za pocetak nesto sa LINQ to SQL za pristupanje bazi.Kasnije bi treba i malo SQL-a odradit.Ono sta bi volia da mi neko pojasni je na kojem principu funkcjonira to LINQ-ovo komuniciranje s "Kolekcijom" koja automatski komunicira s bazom putem SQL-a , šta bi kolekcija predstavljala i koje su prednosti poznavanja SQL-a nad poznavanjem samo LINQ to SQL-a?

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Moj PC  
0 0 hvala 0
16 godina
odjavljen
offline
Re: Savjet za učenje baza podataka te pristupa iz
athlon64 kaže...

dakle uglavnom sad radim LINQ course na pluralsightu (jednostavna stvar) pa cu probat za pocetak nesto sa LINQ to SQL za pristupanje bazi.Kasnije bi treba i malo SQL-a odradit.Ono sta bi volia da mi neko pojasni je na kojem principu funkcjonira to LINQ-ovo komuniciranje s "Kolekcijom" koja automatski komunicira s bazom putem SQL-a , šta bi kolekcija predstavljala i koje su prednosti poznavanja SQL-a nad poznavanjem samo LINQ to SQL-a?

 

Linq2Sql ti je samo alat za pristupanje SQL serveru koji uvelike olakšava CRUD. Zašto ti je bitno kako funkcionira komuniciranje sa kolekcijom?

Zamisli da imaš l2s objekt tipa Subjekt. Subjekt ima kolekciju tipa Telefon. Tebi je bitno da možeš napisati Subjekt.Telefons.Add(new Telefon()) i da će prilikom snimanja subjekta i telefoni završiti u bazi. I telefoni mogu imati svoje kolekcije. Pusti kako to funkcionira ispod haube. S vremenom ti to neće biti dovoljno pa ćeš morati napraviti i poneki view u bazi, funkciju, storu, indeks...

Uglavnom, l2s ti daje mogućnost da u dizajneru "prevučeš" tablicu iz baze i da ti se automatski generira klasa koju možeš koristiti. Već sa tim poprilično banalnim stvarima možeš napraviti zgodne programčiće ali kao što sam već rekao - SQL bi trebalo malo detaljnije proučiti, vjerojatno će ti trebati. Ne očekuj da ćeš to savladati za 2 dana i ne očekuj da je sve što ćeš pročitati zanimljivo. Pusti access, uhvati se SQL-a...

Freak Show Inc.
Poruka je uređivana zadnji put čet 19.4.2012 18:33 (Friday).
14 godina
neaktivan
offline
Savjet za učenje baza podataka te pristupa iz C#

ok hvala na savjetu. BTW nešto mi još nije jasno, kažeš pusti access uhvati se SQL-a, ja sam mislia da je SQL samo query language za pristupanje bazama,ne da se u njemu mogu i izrađivati baze?

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Moj PC  
0 0 hvala 0
16 godina
odjavljen
offline
Re: Savjet za učenje baza podataka te pristupa iz
athlon64 kaže...

ok hvala na savjetu. BTW nešto mi još nije jasno, kažeš pusti access uhvati se SQL-a, ja sam mislia da je SQL samo query language za pristupanje bazama,ne da se u njemu mogu i izrađivati baze?

 

Ma je, ali uglavnom se misli na nekakav sql server... {#}

 

EDIT:

SQL se dijeli na izraze za dohvat podataka, uređivanje podataka, definiciju podataka, uređivanje prava. Sve što se sa serverom, bazom, tablicom, userima (...) može napraviti kroz nekakav GUI može se napraviti i kroz SQL izraz. Čak štoviše, za sve što radiš kroz GUI kreira se skripta koja se pokrene...

Freak Show Inc.
Poruka je uređivana zadnji put čet 19.4.2012 18:46 (Friday).
15 godina
neaktivan
offline
Re: Savjet za učenje baza podataka te pristupa iz
Friday kaže...
athlon64 kaže...

 

Kad tad trebati češ bolje proučiti SQL , programiram ASP.NET aplikacije a poznavanje SQL je jedna bazična stvar u napretku programiranja aplikacija ,dalje su sve lagane nadogradnje koje također idu uporedo mjesecima pa i godinama....znam ja da želiš odmah nešto veliko ali polako u jednom području ili dva biti vrhunski je biti odličan programer .

Private
14 godina
neaktivan
offline
Savjet za učenje baza podataka te pristupa iz C#

sve jasno, hvala na savjetima, ako budem ima jos koje pitanje pitat cu :D, do sutra cu dovrsit ovih par videa o LINQ to sql pa cu pokusat nesto s time da shvatim koncept a onda cu obradit SQL.

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Moj PC  
0 0 hvala 0
16 godina
offline
Savjet za učenje baza podataka te pristupa iz C#

Na Linq 2 SQL (L2S) zaboravite. Iako postoji i dalje, njega je u potpunosti zamjenio EF (Entity Framework). Kada je EF izasao, imao je brojne djecje bolesti, pa se morao koristiti L2S. U EF 4 su vecinu toga ispravili. EF i L2S su samo apstrakcija nad ADO.NETom, tu se svi slazemo. Smatram da za pocetak nije potrebno uciti ADO.NET, iako je za osnovno koristenje dosta jednostavan (SqlConnection, SqlCommand, Reader klase), pa ako netko ima viska vremena, samo naprijed ...

 

EF 4.1 (odnosno trenutno 4.3.1) ima sasvim upotrebljiv Code First nacin rada (prvo se definiraju klase, prema kojima EF automatski generira bazu), i potrebno je svega par linija koda da bi se moglo zapoceti sa radom. Savjetovao bi izbjegavanje upotrebe EF designera.

Potrebno je napraviti sljedece:

1. definirati klase (model), postoje određena pravila i konvencije za referencirane klase.

2. definirati DataContext klasu (tkz. Unit of Work). Sadrzi kolekcije (DbSet<>) koje predstavljaju tablice u bazi

2.5 poziv Database.SetInitializer(...) ako baza ne postoji i zelite da ju EF kreira

3. LINQ upiti 

 

Ne treba bjezati od SQL jezika, i njega se MORA znati, barem osnove, jer apstrakcija koji Linq pruza i nije najbolja za sve scenarije, i moze se obiti u glavu. SQL je dovoljno lagan da se osnove vrlo brzo savladaju. I ako se ne poznaje problematika sheme, baze, SQLa, tesko se moze i raditi sa EF-om. 

 

Sto se tice same baze, moze se koristiti nekoliko njih, za koje EF ima provider (provjeriti preko Nugeta): MSSQL (puni, express, localdb), MySQL, SQLite, SQL CE, ...

Baze su u biti samo serveri, servisi, uz koje je potrebno ili pozeljno imati neki alat za njihovo upravljanje: SQL Management Studio za MSSQL, MySQL Workbench, ili Database.NET za skoro sve baze (http://fishcodelib.com/Database.htm). VS2010 moze upravljati MSSQL i SQL CE bazama. 

 

Savjet: dobro pratite generirane SQL-ove od EF-a. Za to se moze koristiti Profiler iz SQL Management studia (najkompliciranije rjesenje), EF Profiler (najjednostacnije), Glimpse.EF (ako se radi o web aplikaciji), a postoje i drugi "inspektori" koj omogucavaju pregled SQL-a prilikom debugiranja. 

Smith and Wesson - the original point and click interface | http://twitter.com/hhrvoje, http://www.hudosvibe.net
Poruka je uređivana zadnji put čet 19.4.2012 19:12 (hudo).
Moj PC  
2 0 hvala 1
14 godina
neaktivan
offline
Savjet za učenje baza podataka te pristupa iz C#

aha,tako je, znam da nesto nisam dobro shvatia.Ekipa koja mi je rekla da SQL nije nužan zasad mi je također rekla da se koristi LINQ to SQL-om i ENTITY FRAMEWORKOM ,ali sam zaboravia na msdn pogledat o cemu se radi. Sad mi je jasnije.

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
Moj PC  
0 0 hvala 0
16 godina
offline
Re: Savjet za učenje baza podataka te pristupa iz
athlon64 kaže...

aha,tako je, znam da nesto nisam dobro shvatia.Ekipa koja mi je rekla da SQL nije nužan zasad mi je također rekla da se koristi LINQ to SQL-om i ENTITY FRAMEWORKOM ,ali sam zaboravia na msdn pogledat o cemu se radi. Sad mi je jasnije.

 

EF i L2S su "samo" alati koji prevode LINQ u SQL upite. LINQ (Language Integrated Query) su upiti nad kolekcijama objekata, a kako su ti objekti mapirani na tablice, EF i L2S znaju to prevest u SQL. Zato se oni i zovu ORM alati - Object/Relation Mapping.

 

 

Smith and Wesson - the original point and click interface | http://twitter.com/hhrvoje, http://www.hudosvibe.net
14 godina
neaktivan
offline
Re: Savjet za učenje baza podataka te pristupa iz
hudo kaže...
athlon64 kaže...

aha,tako je, znam da nesto nisam dobro shvatia.Ekipa koja mi je rekla da SQL nije nužan zasad mi je također rekla da se koristi LINQ to SQL-om i ENTITY FRAMEWORKOM ,ali sam zaboravia na msdn pogledat o cemu se radi. Sad mi je jasnije.

 

EF i L2S su "samo" alati koji prevode LINQ u SQL upite. LINQ (Language Integrated Query) su upiti nad kolekcijama objekata, a kako su ti objekti mapirani na tablice, EF i L2S znaju to prevest u SQL. Zato se oni i zovu ORM alati - Object/Relation Mapping.

 

 

e da,točno ti mi je objašnjava prijatelj. On se koristi LINQ-om za upite nad kolekcijama objekata a onda EF to automatski prevodi u SQL upite. Ono na što me on fokusirao je da mi tu za rad poznavanje SQL-a može donijet dodatne mogučnosti al da se on skroz uredno snalazi sa LINQ-om i EF-om.Zato sam i otvoria temu, da dobijem mišljenja o toj teoriji xd,samo ga nisam dobro shvatia pa nisam zna ni dobro pojasnit.

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
16 godina
offline
Savjet za učenje baza podataka te pristupa iz C#

Gledaj to ovako: 95% upita ces moci napraviti sa LINQom, a kada budes guru, i htio spojiti 10-tak tablica, grupirat, join-at ovisno o nekom CASEu, morati ces uzet SQL. Ne zato sto se to nemoze sa LINQom, nego zato sto je sa SQLom puno optimalnije: sa LINQom (EF, L2S) ces trebati povuc pola baze u memoriju i tamo pretumbat da bi dobio tocno ono sto ti treba, a sa SQLom mozes odraditi u samoj bazi, stedeci promet app<->baza.

Sto u praksi znaci: ako koristis Linq, dobiti ces 500 upita na bazu, a to mozes svest na 1 rucno pisani SQL upit. 

 

EF je tu dobar (to moze vecina ORM alata) posto dozvoljava da mu ti das SQL upit, a on ce rezultat mapirati nad objekt (kolekciju objekata):

var companies = dbContext.ExecuteStoreQuery<Company>("SELECT * FROM Companies");

(izvuceno iz http://blogs.microsoft.co.il/blogs/gilf/archive/2009/11/25/execute-t-sql-statements-in-entity-framework-4.aspx)

Smith and Wesson - the original point and click interface | http://twitter.com/hhrvoje, http://www.hudosvibe.net
Poruka je uređivana zadnji put čet 19.4.2012 20:19 (hudo).
Moj PC  
2 0 hvala 1
14 godina
neaktivan
offline
Re: Savjet za učenje baza podataka te pristupa iz
hudo kaže...

Gledaj to ovako: 95% upita ces moci napraviti sa LINQom, a kada budes guru, i htio spojiti 10-tak tablica, grupirat, join-at ovisno o nekom CASEu, morati ces uzet SQL. Ne zato sto se to nemoze sa LINQom, nego zato sto je sa SQLom puno optimalnije: sa LINQom (EF, L2S) ces trebati povuc pola baze u memoriju i tamo pretumbat da bi dobio tocno ono sto ti treba, a sa SQLom mozes odraditi u samoj bazi, stedeci promet app<->baza.

Sto u praksi znaci: ako koristis Linq, dobiti ces 500 upita na bazu, a to mozes svest na 1 rucno pisani SQL upit. 

 

EF je tu dobar (to moze vecina ORM alata) posto dozvoljava da mu ti das SQL upit, a on ce rezultat mapirati nad objekt (kolekciju objekata):

var companies = dbContext.ExecuteStoreQuery<Company>("SELECT * FROM Companies");

(izvuceno iz http://blogs.microsoft.co.il/blogs/gilf/archive/2009/11/25/execute-t-sql-statements-in-entity-framework-4.aspx)

izvrsno objašnjenje! hvala, ugl LINQ sve s čime radi iz baze mora imat u programu,odnsono LINQ se koristi za upite po kolekcijama u samom C# kodu a onda te kolekcije putem SQL-a mogu komunicirat s bazom i zato ako se radi s LINQ-om nije optimalno jer sve mora bit u kodu tj memoriji a SQL-om mogu direktno s bazom komunicirat. E sad je jasno, tnx :)

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
16 godina
offline
Re: Savjet za učenje baza podataka te pristupa iz
athlon64 kaže...
hudo kaže...

Gledaj to ovako: 95% upita ces moci napraviti sa LINQom, a kada budes guru, i htio spojiti 10-tak tablica, grupirat, join-at ovisno o nekom CASEu, morati ces uzet SQL. Ne zato sto se to nemoze sa LINQom, nego zato sto je sa SQLom puno optimalnije: sa LINQom (EF, L2S) ces trebati povuc pola baze u memoriju i tamo pretumbat da bi dobio tocno ono sto ti treba, a sa SQLom mozes odraditi u samoj bazi, stedeci promet app<->baza.

Sto u praksi znaci: ako koristis Linq, dobiti ces 500 upita na bazu, a to mozes svest na 1 rucno pisani SQL upit. 

 

EF je tu dobar (to moze vecina ORM alata) posto dozvoljava da mu ti das SQL upit, a on ce rezultat mapirati nad objekt (kolekciju objekata):

var companies = dbContext.ExecuteStoreQuery<Company>("SELECT * FROM Companies");

(izvuceno iz http://blogs.microsoft.co.il/blogs/gilf/archive/2009/11/25/execute-t-sql-statements-in-entity-framework-4.aspx)

izvrsno objašnjenje! hvala, ugl LINQ sve s čime radi iz baze mora imat u programu,odnsono LINQ se koristi za upite po kolekcijama u samom C# kodu a onda te kolekcije putem SQL-a mogu komunicirat s bazom i zato ako se radi s LINQ-om nije optimalno jer sve mora bit u kodu tj memoriji a SQL-om mogu direktno s bazom komunicirat. E sad je jasno, tnx :)

 

hmmm, i da i ne. LINQ je u biti samo upit. Linq 2 Object radi na objektima u memoriji, Linq 2 Sql (L2S) i Linq 2 Entities (EF, Entity Framework) pretvaraju Linq upit u Sql upit, tako da oni ne dovuku sve iz bazeu memoriju pa tamo filtrijaju. 

 

Naprimjer:

 

var products = context.Products.Where(x=>x.Price > 10)

 

je isto sto i:

 

var products = from p in context.Products

             where p.Price > 10

             select p;

 

i to onda EF ili L2S pretvaraju u SQL:

 

SELECT Id, Name, Price FROM Products WHERE Price > 10

 

sto znaci da se EF i L2S trude sto optimalnije prevest upit u SQL. Ovo prvo je "lambda" upit, ovo drugo Linq. Kada napises Linq upit, on se u pozadini pretvori u Lambda upit, ali to u biti nije vazno toliko, pises sta ti vise pase ;)

 

 

 

Dobro za spomenuti da ovako nesto:

 

  var upit = context.Products.Where(x=>x.Name == "bla")

 

ne ide na bazu, i ovaj Where vraca tip IQueryable<Products>. To omogucava da "gradiš" upit:

 

  upit = upit.Where(x=>x.Price > 100); 

  upit = upit.Where(x=>x.Category.Name == "njok"); // ovo radi Join dvije tablice u bazi

  upit = upit.Skip(20).Take(10);

 

i tek kada okines .ToList() on pretvori to u SQL i ode na bazu: 

 

  var products = upit.ToList();

 

ovaj .Take() i .Skip() naprimjer omogucavaju "paging", preskoci 20 redova i uzmi 10 redova. U C# sa LINQ je kreiranje paginga jednostavno, a SQL izgleda puno drugacije i kompliciranije :)  

Smith and Wesson - the original point and click interface | http://twitter.com/hhrvoje, http://www.hudosvibe.net
Poruka je uređivana zadnji put čet 19.4.2012 21:29 (hudo).
16 godina
odjavljen
offline
Re: Savjet za učenje baza podataka te pristupa iz
athlon64 kaže...

izvrsno objašnjenje! hvala, ugl LINQ sve s čime radi iz baze mora imat u programu,odnsono LINQ se koristi za upite po kolekcijama u samom C# kodu a onda te kolekcije putem SQL-a mogu komunicirat s bazom i zato ako se radi s LINQ-om nije optimalno jer sve mora bit u kodu tj memoriji a SQL-om mogu direktno s bazom komunicirat. E sad je jasno, tnx :)

 

Nije tako ali nemoj se time zamarati. Ne trči previše unaprijed, sve će doći na mjesto.

Freak Show Inc.
14 godina
neaktivan
offline
Re: Savjet za učenje baza podataka te pristupa iz
Friday kaže...
athlon64 kaže...

izvrsno objašnjenje! hvala, ugl LINQ sve s čime radi iz baze mora imat u programu,odnsono LINQ se koristi za upite po kolekcijama u samom C# kodu a onda te kolekcije putem SQL-a mogu komunicirat s bazom i zato ako se radi s LINQ-om nije optimalno jer sve mora bit u kodu tj memoriji a SQL-om mogu direktno s bazom komunicirat. E sad je jasno, tnx :)

 

Nije tako ali nemoj se time zamarati. Ne trči previše unaprijed, sve će doći na mjesto.

dobro rečeno,moram prvo odradit neke stvari da bi sve sjelo na svoje mjesto.Kod ove teme npr je problem mog nedostatka znanja pa neznam obijasnit što želim pitati, al sve u svemu puno ste mi pojasnili i pomogli, sad ja idem na posal :)

Nikad te necemo zaboraviti. RIP EnlightenedPhoenix 24.6.2011.
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice