18 messaggi dal 21 marzo 2006
Ciao, essendo un novizio di Linq mi si stà ponendo un problema..
ho una pagina di ricerca, dove seleziono le categorie di ricerca ..
fin qui nulla di difficile.
Ma se la selezione è multipla... prima avrei concatenato stringhe alla queri dicendo "i=1" .."|| i=22"... "|| i=33"

in jQuery come posso fare sta cosa???

ad esmepio :
  
from p in context.rPlayers  
join d in context.PlayersDescriptions on p.id_Player equals d.id_Player  
join c in context.PositionIndexes on p.id_Position equals c.id_Position  
join cn in context.PositionsNames on c.id_Position equals cn.id_Position  
where cn.pName == lb_Position.SelectedItem.Text 
select new { p.id_Player, p.Name, p.Surname};

qui vorrei selezionare i giocatori che fanno parte della categoria x && y
Modificato da Studiodb il 03 luglio 2009 12.22 -
Modificato da Studiodb il 03 luglio 2009 12.30 -
la tua query restituisce un tipo IQuerable<T>, come tale puoi aggiungere tutte le condizioni che vuoi

var _query = (from p in context.rPlayers
join d in context.PlayersDescriptions on p.id_Player equals d.id_Player
join c in context.PositionIndexes on p.id_Position equals c.id_Position
join cn in context.PositionsNames on c.id_Position equals cn.id_Position
where cn.pName == lb_Position.SelectedItem.Text)

if(qualcosa)
{
_query = query.Where(p => p.Proprietà == qualcosa2)
}

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
18 messaggi dal 21 marzo 2006
nostromo ha scritto:

if(qualcosa)
{
_query = query.Where(p => p.Proprietà == qualcosa2)
}

grazie nostromo
ho buttato giù il codice al volo..

                
var res = from p in EOdb.rPlayers
join d in EOdb.PlayersDescriptions on p.id_Player equals d.id_Player
join c in EOdb.PositionIndexes on p.id_Position equals c.id_Position
join cn in EOdb.PositionsNames on c.id_Position equals cn.id_Position
where cn.Region == "EN-en" && p.Disabled != true
select new { p.id_Player, p.Name, p.Surname, p.Pound, p.Height, p.caricature, cn.pName, p.BirthDate, d.Description };

foreach (int i in lb_Position.GetSelectedIndices())
{
    var _res = res.Where(cn => cn.pName == lb_Position.Items[i].Text);
//così mi applicherebbe solo l'ultima che legge...no???
} 

ma come posso sommare i filtri a seconda di quanti ne seleziona l'utente...
mica posso mettere il for each dentro il res.where?!
dichiara res fuori dal ciclo

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
18 messaggi dal 21 marzo 2006
nostromo ha scritto:
dichiara res fuori dal ciclo


ho provato così ma se seleziono solo 1 valore funziona se ne seleziono + di uno .. nn vedo nulla
Il fatto è che O sono di una categoria o dell'altra quindi dovrei mettere un OR non un and...


                var res = from p in EOdb.rPlayers
                          join d in EOdb.PlayersDescriptions on p.id_Player equals d.id_Player
                          join c in EOdb.PositionIndexes on p.id_Position equals c.id_Position
                          join cn in EOdb.PositionsNames on c.id_Position equals cn.id_Position
                          where cn.Region == "EN-en" && cn.pName == lb_Position.SelectedItem.Text && p.Disabled != true
                          select new { p.id_Player, p.Name, p.Surname, p.Pound, p.Height, p.caricature, cn.pName, p.BirthDate, d.Description };
                var _res = res;
                foreach (int i in lb_Position.GetSelectedIndices())
                {
                     _res = res.Where(cn => cn.pName == lb_Position.Items[i].Text);
                } 
                
cambia "==" con la condizione che ti serve

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
18 messaggi dal 21 marzo 2006
nostromo ha scritto:
cambia "==" con la condizione che ti serve


Ciao grazie, ma forse mi sono spiegato male


ho i ruoli
Portiere
attaccante
difensore
ecc

io voglio vedere tutti i giocatori delle categorie selezionate

quindi la condizione deve filtrare i miei giocatori in base a questo

quindi deve essere : nomeCampo == attaccante OR nomeCampo == difensore
tutto questo in un ciclo visto che non sò quanti ne selezionerà l'utente
Modificato da Studiodb il 03 luglio 2009 16.11 -
18 messaggi dal 21 marzo 2006
qualcuno mi può aiutare?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.