[ patak_daca @ 15.05.2015. 16:20 ] @
Pozdrav!

Kako da u

Code:
var lista = new SelectList(from a in baza_kon.Users
                                        join ms in baza_kon.Memberships on a.UserId equals ms.UserId
                                        where ms.IsApproved == true
                                        select a, "UserName", "UserName");


dodam još nekoliko itema ?

Hvala!

[ Shadowed @ 15.05.2015. 16:45 ] @
Code:

List<User> UsersList = (from a in baza_kon.Users
                                        join ms in baza_kon.Memberships on a.UserId equals ms.UserId
                                        where ms.IsApproved == true
                                        select a).ToList();
UsersList.Add(new User() { Name = "Pera" } );
UsersList.Add(new User() { Name = "Mika" } );
UsersList.Add(new User() { Name = "Laza" } );

SelectList lista = new SelectList(UsersList);


[Ovu poruku je menjao Shadowed dana 16.05.2015. u 00:25 GMT+1]
[ patak_daca @ 15.05.2015. 17:06 ] @
Pozdrav!

Da , to je to...

Hvala puno!

Pozdrav!

Patak
[ Shadowed @ 16.05.2015. 01:47 ] @
Hajd' da napisem i malo detalja.. Mozda bude od koristi, tebi ili nekom drugom.

Samo cu prethodno pojednostaviti primer (manje kucanja i lakse za kapiranje) tako sto cu izbaciti join i pretpostaviti da je IsApproved property klase User.

U tom slucaju bi pocetni primer bio:

Code:
var lista = new SelectList(from a in baza_kon.Users where u.IsApproved == true select a, "UserName", "UserName");


Ovo se prilikom kompajliranja prevodi na sledeci oblik:

Code:
SelectList lista = new SelectList(baza_kon.Users.Where(u => u.IsApproved), "UserName", "UserName");


(Select deo je nebitan posto se selektuje ceo User objekat)

E sad, SelectList trazi IEnumerable u konstruktoru.
baza_kon.Users.Where(...) vraca IQuerable<User> pri cemu IQuerable<T> nasledjuje IEnumerable<T> (koji nasledjuje IEnumerable).
Zbog toga se taj rezultat moze proslediti direktno konstruktoru.

U onom mom primeru resenja dobijeni rezultat konverujemo u List<User> koji podrzava dodavanje elemenata i onda mu jednostavno dodajemo nove User objekte kao sto je prikazano.
Posto List<T> implementira IEnumerable<T>, ta lista se moze direktno dati SelectList konstruktoru sto smo na kraju i uradili.



Naravno, ovo nije jedino resenje, moze se koristiti Union ili Concat u prvobitnom query-u.
Inace, predlazem koriscenje extension metoda direktno umesto preko sql-like query-a, lakse je za razumevanje a i kod je kompaktniji a i dalje citljiv (mozda cak i citljiviji).
[ patak_daca @ 16.05.2015. 05:34 ] @
Pozdrav!

Hvala puno!