[ patak_daca @ 30.06.2015. 17:52 ] @
Pozdrav!

Kako da kreiram LINQ upit koji omogućava pretragu po svim kolonama ?

Ja sam probao ovako:

Code:
 var queryX =  from tik in Tikets
                         where
                              (tik.Adresa != null && tik.Adresa.Contains("x"))
                             
                              || (tik.DodeljenKorisniku != null && tik.DodeljenKorisniku.Contains("x"))
                             [b] || (tik.Id_tiket != null && tik.Id_tiket.Equals(int.Parse("x")))[/b]
                              || (tik.ImePrezime != null && tik.ImePrezime.Contains("x"))
                              || (tik.Korisnik_evidentirao != null && tik.Korisnik_evidentirao.Contains("x"))
                              || (tik.Telefon != null && tik.Telefon.Contains("x"))
                              || (tik.TelefonMob != null && tik.TelefonMob.Contains("x"))
                            
                         select tik;
                         
                          queryX.ToList();
            
             queryX.Dump();



Ovo je primer za LINQPad....

Ali imam problem kako da tražim po Int kolonama i Date

Ako neko zna...molim za pomoć

Hvala
[ Laki123 @ 30.06.2015. 18:17 ] @
Mozes ih prebaciti u string za datum npr. ToShortDateString() i stavljaj ToLower() ako neces case sensitive, npr.
tik.Adresa.ToLower().Contains(tbSearch.Text.ToLower())
[ patak_daca @ 30.06.2015. 18:20 ] @
Pozdrav!

Hvala!!

Ali imam problem jer kada unesem string izbacuje mi grešku kod polja koja su Int.
[ Shadowed @ 30.06.2015. 18:21 ] @
ToString()

Edit: odgovorise u medjuvremenu :)
[ Shadowed @ 30.06.2015. 18:22 ] @
Citat:
patak_daca:
Pozdrav!

Hvala!!

Ali imam problem jer kada unesem string izbacuje mi grešku kod polja koja su Int.

Koju gresku?
[ patak_daca @ 30.06.2015. 18:23 ] @
Pozdrav!

Probao sam ali dobijem grešku:

LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression.

Hvala!
[ patak_daca @ 30.06.2015. 18:25 ] @
U LINQPadu ovaj code radi odlično:

Code:
int data3;

var queryX =  from tik in Tikets
                         where
                              (tik.Adresa != null && tik.Adresa.Contains("x"))
                             
                              || (tik.DodeljenKorisniku != null && tik.DodeljenKorisniku.Contains("x"))
                              || (tik.Id_tiket != null && tik.Id_tiket.Equals(int.TryParse("x", out data3)))
                              || (tik.ImePrezime != null && tik.ImePrezime.Contains("x"))
                              || (tik.Korisnik_evidentirao != null && tik.Korisnik_evidentirao.Contains("martin"))
                              || (tik.Telefon != null && tik.Telefon.Contains("x"))
                              || (tik.TelefonMob != null && tik.TelefonMob.Contains("x"))
                            
                         select tik;
                         
            queryX.ToList();
            
             queryX.Dump();


A kda ga primenim u VS prijavljuje grešku.
[ Shadowed @ 30.06.2015. 18:38 ] @
Citat:
patak_daca:
Probao sam ali dobijem grešku:

LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression.


OK, zasto li je imam osecaj da sam bez problema koristio ToString sa linq2sql/EF...
U svakom slucaju, problem je taj sto to nije klasican Linq to objects koji se izvrsava na klijentu vec se parsira i konvertuje u sql. Posto engine nema podrsku za ToString() ne moze ni da ga konvertuje u sql.
Nemam trenutno ideju za resenje osim najbanalnije - da filtriranje po int-ovima i datetime-ovima uradis na klijentu.
[ patak_daca @ 30.06.2015. 18:44 ] @
Pozdrav!

Našao sam rešenje, možda nije nešto ali radi...

Code:
  int myInt;
                int broj=0;
              
                bool isValid = int.TryParse(trazi, out myInt);
                if (isValid)
                {
                    broj = Int32.Parse(trazi);
                }
                else 
                
                {
                    broj = 0;
                }



i onda "broj" "ubacim" ..


Code:
...
 || (tik.Id_tiket != null && tik.Id_tiket.Equals(broj))
...


[ dusans @ 30.06.2015. 18:47 ] @
Dovoljno je:
Code:

int broj=0;
int.TryParse(trazi, out broj);
[ patak_daca @ 30.06.2015. 18:50 ] @
Pozdrav!

To je to..

Puno hvala!!

Patak
[ patak_daca @ 01.07.2015. 18:09 ] @
Pozdrav!

Probao sam sa dva kriterijuma.
Ukucam u textbox dva parametra, npr. patak, prvi

Trebao bi da filtriram po svim kolonama sa parametrima "patak" i "prvi"
probao sam sa:

Code:
queryX = from tik in queryX
                            join vr in baza_kon.VrsteRadovas on tik.Id_vrste_rada equals vr.Id_vrste_rada
                            join ms in baza_kon.Gradovis on tik.Id_mesto equals ms.Id_mesto
                            where
                                 (tik.Adresa != null && tik.Adresa.Contains(prva_rec))
                                 || (tik.DodeljenKorisniku != null && tik.DodeljenKorisniku.Contains(prva_rec))
                                 || (tik.Id_tiket != null && tik.Id_tiket.Equals(prvi_broj))
                                 || (tik.ImePrezime != null && tik.ImePrezime.Contains(prva_rec))
                                 || (tik.Telefon != null && tik.Telefon.Contains(prva_rec))
                                 || (tik.TelefonMob != null && tik.TelefonMob.Contains(prva_rec))
                                 || (vr.NazivVrsteRada != null && vr.NazivVrsteRada.Contains(prva_rec))
                                 || (ms.NazivGrada != null && ms.NazivGrada.Contains(prva_rec))
                                 || (tik.UserName != null && tik.UserName.Contains(prva_rec))

                                 ||

                                 (tik.Adresa != null && tik.Adresa.Contains(druga_rec))
                                 || (tik.DodeljenKorisniku != null && tik.DodeljenKorisniku.Contains(druga_rec))
                                 || (tik.Id_tiket != null && tik.Id_tiket.Equals(drugi_broj))
                                 || (tik.ImePrezime != null && tik.ImePrezime.Contains(druga_rec))
                                 || (tik.Telefon != null && tik.Telefon.Contains(druga_rec))
                                 || (tik.TelefonMob != null && tik.TelefonMob.Contains(druga_rec))
                                 || (vr.NazivVrsteRada != null && vr.NazivVrsteRada.Contains(druga_rec))
                                 || (ms.NazivGrada != null && ms.NazivGrada.Contains(druga_rec))
                                 || (tik.UserName != null && tik.UserName.Contains(druga_rec))



                            select tik;


ali vraća podatke samo po prvom parametru...( ovo je bio samo test , znam da nije rešenje )

Ako neko može da pomogne...
Hvala puno!

Patak
[ patak_daca @ 07.07.2015. 11:03 ] @
Pozdrav!

Da li je neko pokušao ovako da uradi LINQ to SQL - Enabling Fulltext searching ?

http://sqlblogcasts.com/blogs/...abling-Fulltext-searching.aspx

ako neko zna , molim za pomoć...

Hvala!!

Patak
[ dusans @ 07.07.2015. 11:16 ] @
Mislim da je veoma pogrešno po svaku cenu forsirati LINQ za određene stvari koje nisu direktno podržane,
i praviti nekakve budževine samo da bi se zvalo da radi preko LINQ-a kao npr. taj full text search.
LINQ je lep i zgodan ali jednostavno ne podržava sve što podržavaju RDBMS.

Lepo napiši SQL upit ili stored proceduru i stvar rešena.
[ patak_daca @ 07.07.2015. 11:20 ] @
Pozdrav!

Čitao sa da ne podržava "Fulltext searching" direktno, nego "onako" malo budža...

Hvala puno!

Pozdrav!