Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Linq problem - kako spojiti upit...

[es] :: .NET :: ASP.NET :: Linq problem - kako spojiti upit...

Strane: 1 2

[ Pregleda: 7544 | Odgovora: 31 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

patak_daca

Član broj: 72199
Poruke: 418
*.static.isp.telekom.rs.



+1 Profil

icon Linq problem - kako spojiti upit...24.12.2014. u 06:28 - pre 112 meseci
Pozdrav!

Kako da postojeći linq upit rasparčam u delove ( select , groupby, order) i spajam ih po izboru ( bez groupby ili sa groupby ) ?

var query1 = from qin baza_kon.Tabela

where a.Aktivan == 1

group a by a.kolona1 into newGroup

orderby newGroup.Key

select newGroup;



ako neko zna molim za pomoć...

Hvala!!

Patak
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12846



+4783 Profil

icon Re: Linq problem - kako spojiti upit...24.12.2014. u 08:33 - pre 112 meseci
Code:

var where_part = baza_kon.Tabela.Where(a => a.Aktivane == 1);
var group_part = where_part.GroupBy(a => a.kolona1);
var orderby_part = group_part.OrderBy(a => a.Key);



Proveri malo, mozda sam negde omasio, kucao sam napamet, bez VS-a.
Stvar je u tome da se svi ti LINQ upiti konvertuju u pozive funkcijama koje mozes i sam koristiti sto je i prakticnije za ovo sto ti treba.
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
*.static.isp.telekom.rs.



+1 Profil

icon Re: Linq problem - kako spojiti upit...24.12.2014. u 08:40 - pre 112 meseci
Pozdrav!

Odlično! Hvala puno!

Patak
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
*.static.isp.telekom.rs.



+1 Profil

icon Re: Linq problem - kako spojiti upit...24.12.2014. u 09:28 - pre 112 meseci
Ako su podaci grupisani da li moram praviti novi View u odnosu ako nisu ?
Da li postoji neko eleganto rešenje ?
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Linq problem - kako spojiti upit...25.12.2014. u 09:42 - pre 112 meseci
Da li neko ima predlog kako uraditi View ako postoji mogućnost da podaci budu grupisani i ne moraju biti ?

Kada u View bude
@model List<IGrouping< string , Model>> onda su grupisani podaci

a postoji mogućnost da korisnik ne želi da gupiše podatke.

Ako neko ima predlog ?

Hvala!

Poz

 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Linq problem - kako spojiti upit...25.12.2014. u 09:50 - pre 112 meseci
Uvek mozes da grupises sve podatke u jednu grupu, tako ne moras da menjas model type u View-u.


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ć
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Linq problem - kako spojiti upit...25.12.2014. u 10:00 - pre 112 meseci
Kada posle svih delova i spajanja linq upita....dobijem query2

var keyEmplist = (from IGrouping<string,Model> dat in query2 select dat).ToList();


return View("FormResults", keyEmplist);


kako da ih gupišem u jednu gupu ?

Hvala!


 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Linq problem - kako spojiti upit...25.12.2014. u 10:26 - pre 112 meseci
Pa ti si tu vec grupisao podatke. Imas sigurno neki if/then/else branch koji ti generise LINQ koji nije grupisan. Njega grupises u isti tip kao i ovaj linq.
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ć
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Linq problem - kako spojiti upit...25.12.2014. u 11:49 - pre 112 meseci
Uradio sa grupisanje podataka...radi odlično...

ali kada šaljem u View prijavi grešku...jer očekuje string a ja grupisao po int ( grupisano po Id iz tabele )
onda moram da promenim i u View u int..

var keyEmplist = (from IGrouping<string, Vezbe_sa_DIV.EF.Tiket> dat in query2 select dat).ToList();

onda View zavisi on kontrolera i kojeg šaljem podatke...ili ne ?
 
Odgovor na temu

pl4stik
Senior .NET programmer/Consultant
oDesk
NI na nebu NI na zemlji

Član broj: 173596
Poruke: 715
*.dynamic.isp.telekom.rs.

Sajt: xx-auth.com.azhar.arvixe...


+31 Profil

icon Re: Linq problem - kako spojiti upit...25.12.2014. u 12:18 - pre 112 meseci
Probaj da stavis object kao parametar koji ocekujes umesto string pa proveravaj jel string ili int ili...
To sto nekoliko miliona ljudi tvrdi da nisi u pravu ne znaci da stvarno nisi - Frank Zappa

https://youtu.be/DLe358DPGXU
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Linq problem - kako spojiti upit...25.12.2014. u 12:45 - pre 112 meseci
Uspeo sam da rešim...uvek ću da grupišem po int (id, id_mesta, id_posla ...)
...ali samo još ovo

kako mmix piše

Citat:
mmix: Pa ti si tu vec grupisao podatke. Imas sigurno neki if/then/else branch koji ti generise LINQ koji nije grupisan. Njega grupises u isti tip kao i ovaj linq.


vrati mi se samo Key vrednost a meni trebaju i ostale vrednosti iz te tabele koju sam grupisao po Id...

molim za pomoć.

 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Linq problem - kako spojiti upit...26.12.2014. u 10:00 - pre 112 meseci
Zašto ako posle grupisanja podataka uradim orderby

var group_part = where.GroupBy(a => a.Gradovi.Id_mesto);

orderby_part = group_part.Select(o => new { id = o.Key, NazivGrada = o.OrderBy(c => c.StatusTiketa.NazivStatusa) });


dobijam grešku u delu

var keyEmplist = (from IGrouping<int, Vezbe_sa_DIV.EF.Tiket> dat in query2 select dat).ToList();

greška je

Unable to cast the type 'Anonymous type' to type 'System.Linq.IGrouping`2'. LINQ to Entities only supports casting EDM primitive or enumeration types.

??
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Linq problem - kako spojiti upit...26.12.2014. u 10:14 - pre 112 meseci
Pa rasturio si grupisanje sa selectom, rezultat selecta nije IGrouping vec tvoj anonimni objekat.

Imaj u vidu da je C# strong-typed, cak iako se tvoj objekat slaze po imenima polja ne znaci da je ista klasa.
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ć
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Linq problem - kako spojiti upit...26.12.2014. u 10:17 - pre 112 meseci
uf...pa kako da uradim orderby po nekoj drugom drugom polju osim Key-a ?

molim za pomoć...
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Linq problem - kako spojiti upit...26.12.2014. u 11:15 - pre 112 meseci
Vrlo slabo mozemo da ti pomognemo jer kacis samo nepovezane delove koda.

Al btw ovo je potpuno besmisleno:

(from IGrouping<int, Vezbe_sa_DIV.EF.Tiket> dat in query2 select dat).ToList();


dobijas isto i sa dat.ToList()


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ć
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Linq problem - kako spojiti upit...26.12.2014. u 11:47 - pre 112 meseci
ok...evo koda...

Code (csharp):

var where = baza_kon.Tikets.Where(a => a.Aktivan == 1);

 if (!String.IsNullOrEmpty(status))
            {

                if (status != "sve")
                {
                    where = where.Where(a => a.StatusTiketa.NazivStatusa == status);

                }
                         
               
            }

            System.Linq.IQueryable orderby_part = null;

            if (!String.IsNullOrEmpty(Grupisi))
            {
                ViewBag.grupisi = "1";

                if (Grupisi == "ms.NazivGrada")
                {
                 
                    var group_part = where.GroupBy(a => a.Gradovi.Id_mesto);

                    orderby_part = group_part.OrderBy(a => a.Key);

                                     
                }

                if (Grupisi == "vr.NazivVrsteRada")
                {
                    var group_part = where.GroupBy(a => a.VrsteRadova.Id_vrste_rada);

                    orderby_part = group_part.OrderBy(a => a.Key);

                }


            }

            else

            {

                ViewBag.grupisi = "0";

                var group_part = where.GroupBy(a => a.Id_tiket);

                orderby_part = group_part.OrderBy(a => a.Key);

               
            }


           var query2 = orderby_part;
           
           
            var keyEmplist = (from IGrouping<int, Vezbe_sa_DIV.EF.Tiket> dat in query2  select dat ).ToList();


            return View("FormResults", keyEmplist);

}


}
 


U bilo kom groupb pokušavam da kreiram orderby po nekoj drugoj koloni osim Key

možda je malo nepregledno kodirano ..ali radi..

ako neko ima predlog...

Molim pomoć...

[Ovu poruku je menjao mmix dana 26.12.2014. u 15:15 GMT+1]
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Linq problem - kako spojiti upit...26.12.2014. u 14:10 - pre 112 meseci
Postoji i elegantniji nacin za sve ovo...

Ajd pogledacu danas ako uhvatim malo vremena da ti dam par saveta.



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ć
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
*.dynamic.sbb.rs.



+1 Profil

icon Re: Linq problem - kako spojiti upit...26.12.2014. u 14:39 - pre 112 meseci
Odlično!! Hvala puno!!
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6041



+4631 Profil

icon Re: Linq problem - kako spojiti upit...26.12.2014. u 21:05 - pre 112 meseci
Code (csharp):


     var queryX = from a in baza_kon.Tickets
                          where a.Aktivan == 1
                          select a;

     Expression<Func<Ticket, bool>> statusFilter = a => true;
     if (!String.IsNullOrEmpty(status)) statusFilter = a => a.StatusTiketa.NazivStatusa == status;

     queryX = queryX.Where(statusFilter);
     
     ViewBag.grupisi = "0";
     Expression<Func<Ticket, int>> groupFilter = a => a.Id_tiket;
     if (!String.IsNullOrEmpty(Grupisi))
     {
        ViewBag.grupisi = "1";
          if (Grupisi == "ms.NazivGrada") groupFilter = a => a.Gradovi.Id_mesto;
          if (Grupisi == "vr.NazivVrsteRada") groupFilter = a => a.VrsteRadova.Id_vrste_rada;
     }
     
     var keyEmplist = queryX.GroupBy(groupFilter).OrderBy(a => a.Key);

     return View("FormResults", keyEmplist);
 


probunari malo po ovome pa pitaj sta ti nije jasno.


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ć
 
Odgovor na temu

patak_daca

Član broj: 72199
Poruke: 418
*.dynamic.sbb.rs.



+1 Profil

icon Re: Linq problem - kako spojiti upit...26.12.2014. u 21:15 - pre 112 meseci
Svaka čast! Nemam šta da kažem!

Jedino me brine kako da napravim order , ali po nekoj drugoj koloni osim Key -a kada grupišem...

Poz
 
Odgovor na temu

[es] :: .NET :: ASP.NET :: Linq problem - kako spojiti upit...

Strane: 1 2

[ Pregleda: 7544 | Odgovora: 31 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.