[ MatezYU @ 19.10.2010. 07:35 ] @
Pozdrav.
Interesuje me kako bih mogao da izracunam redni broj sloga u tabeli koja je sortirana po nekoj koloni.
U tabeli imam identity (1,1) kolonu i ona je primarni kljuc. Kada unesem novi slog znam id tog sloga. Kada se sortiraju podaci u tabeli, sortiranje se radi po nazivu. Hteo bih da nadjem redni broj tog novog id kljuca u setu koji je sortiran po nazivu. U pitanju je Linq To Sql. Da li ima neko ideju?
[ mmix @ 19.10.2010. 09:06 ] @
Postoji vise nacina da to postignes, a koji je najoptimalniji zavisi od toga za sta ti treba.

Ako hoces da je index deo result seta koristi select override projekciju koji daje index

Code:

// npr:
var x = db.Tabela.OrderBy(o => o.Name).Select((o, index) => new {index, o.name});


[ MatezYU @ 19.10.2010. 10:13 ] @
Evo konkretno o cemu se radi.
U pitanju je sifarnik. Imam dve forme (prikaz stavki i izmena stavki).
U prvoj formi imam spisak svih stavki sifarnika koji je order-ovan po nazivu (ne po identity-ju).
Kada unosim novi slog, otvaram novu formu za unos sloga. Forma za pregled i za izmenu sloga nisu povezane.
Kada zatvorim formu za unos novog sloga, napravio sam da dobijem identity vrednost novog sloga koji se uneo u bazu.
Vracam se u formu sa spiskom i tamo radim refresh prikaza. E sada, tu bih hteo da se pozicioniram na zadnje uneti slog (da on bude selektovan u gridu).
Mislio sam u parcijalnoj klasi tabele sifarnika da dodam jos jedan field tipa int. Pa prilikom punjenja seta da se njegova vrednost uvek uvecava za jedan. Tako bi dobio field npr. RedniBroj koji bi bio sortiran po redosledu punjenja podataka. Mada mi je ovde problem to sto moram imati neki staticki field koji moram uvek postavljati na 0 pre izvrsavanja svakog select-a.
Ako imas neku ideju javi, svaka pomoc je dobrodosla!
[ mmix @ 19.10.2010. 10:30 ] @
A sto tako onda?

Ne treba ti to uopste, ako znas dobijeni auto-identity PKID novog reda, lociraj ga u rezultatu sa ToList().FindIndex(c => c.PKID == mojNovId), taj indeks postavi kao aktivni row.
[ MatezYU @ 19.10.2010. 10:59 ] @
Hvala ti puno!
Sada cu da probam kako to radi.
[ MatezYU @ 19.10.2010. 18:24 ] @
Probao sam, ovo radi odlicno.
Hvala ti jos jednom!