Salve a tutti ho un grande problema con LinQ
All'evento selecting del linq data source ...
devo sovrascrivere una query e farne una perosnalizzata che tenga conto di n° cose...
la query è la seguente
ovviamente EOdb è il context ...codice: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" && d.Region == "EN-en" && cn.pName == lb_Position.SelectedItem.Text && p.Disabled != true && p.id_Nationality == Convert.ToInt32(Session["fPlayer"].ToString()) select new { p.id_Player, p.Name, p.Surname, p.Pound, p.Height, p.caricature, cn.pName, p.BirthDate, d.Description };
a questa query di base, devo fare un filtro dinamico
cioè avendo una listbox con dei valori devo filtrare per i valori selezionati con
un OR e non un AND
Quindi se seleziono nella listbox tutti i giocatori centrocampisti e attaccanti mi devono uscire entrambe le categorie..
Partendo dal presupposto che io non sò cosa sarà sulla listbox visto che è possibile aggiungere o togliere ruoli, come posso fare per aggiungere i filtri dinamicamente?
ho provato così:
ma sfortunatamente si comporta come se ci fosse un'AND ...invece a me serve un'ORcodice:var _res = res; foreach (int i in lb_Position.GetSelectedIndices()) { _res = res.Where(cn => cn.pName == lb_Position.Items[i].Text); } e.Result = _res;
ho provato a usare questo metodo
http://www.albahari.com/nutshell/predicatebuilder.aspx
Ma dovrei fare una classe per l'oggetto derivato e avrei dei problemini a ridistribuirlo a repeater
...davvero linq ha tali limitazioni? oppure sono io che sono scarso??

??
Rispondi quotando
up
