Citat:
Shadowed: pa nisam bio siguran da li ce biti Nothing ako nema rezultata u bazi. Mada, meni bi bilo logicno da i .First vraca Nothing ako nema rezultata (ovo bi mi do sada olaksalo gomilu stvari

).
default ima smisla samo kad query transformise objekat u value type, npr akd vracas ID koji je int, FirstOrDefault() ce vratiti nula ako nema redova, za sve reference tipove default vrednost je null (nothing)
Citat:
Djoks: - Što se tiče SqlMethods - može se izbaciti, ali sam je uveo namjerno zbog primjera njene upotrebe (što sam i napisao). Može biti pogodna zbog svojih funkcija za baratanje datumima... Tvoj kod bih, mmx, ipak izmijenio i zadržao ili LIKE ili SqlMethods iz prostog školskog razloga: imena u SQL upitima valja porediti sa LIKE. Mnogo elegantnije nego uvođenje ToUpper, ToLower itd. U protivnom: "Najdanović" != "NAJDANOVIĆ" != "najdanović" što kod imena/prezimena/naziva ne smije biti slučaj.
- Na kakve dvije skripte misliš?
SqlMethods postoji samo iz jednog razloga, da linq to sql query-je snabde operacijama koje nisu mogle da se uglave u "standardne" metode tipova kojima se barata, sto ovde ukljucuje transformacije datuma i LIKE bez implicitnih wildcards (imaj samo u vidu da LIKE bez wildcards radi isto sto i "=" operator) da bi mogao da pravis LIKE operacije koristeci custom patterns, sto ne mozes kroz metode i ekstenzije string tipa (izuzev ogranicenih 'pattern%' i '%pattern' pretrazivanja kroz navedene BeginsWith i EndsWith metode, npr za pattern nalik 'pera ___ic', tj sve pere koje se prezivaju na pet slova sa ic moras da koristis SqlMethods.Like)
Tvoja primedba sa skolskom primenom LIKE takodje nema osnova. .NET CLR jeste case sensitive ali LINQ to SQL nasledjuje case i collation iz baze sa kojom operise, tako da ako ti je sama baza case insensitive Pera i PERA su isto, a sve i da ti je baza case sensitive LIKE ti nece preskociti to i zaboraviti da poredi case stringova. Pride je LIKE skuplji jer mora da skenira ceo index/kolonu, a posebno to sto LIKE trtira %, ^, [, ], _ kao wildcards pa je za unete parametre koji ih sadrze kao literale neophodno preformatirati string pre slanja u LIKE. Prvi put cujem da neko propoveda upotrebu LIKE bez wildcards kao efiksaniju zamenu za =, to jednostavno ne pije vodu.
Dve skripte:
Code:
Dim p = (From o In DB.Persons Where o.FirstName = "Pera" Select o).FirstOrDefault()
generise prvu SQL skriptu
a DB.SubmitChanges() generise drugu, bilo insert bilo update, u zavisnosti od toga kojom granom je IF prosao.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić