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


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 };
ovviamente EOdb è il context ...
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ì:
codice:
var _res = res;
foreach (int i in lb_Position.GetSelectedIndices())
{
_res = res.Where(cn => cn.pName == lb_Position.Items[i].Text);
}
e.Result = _res;
ma sfortunatamente si comporta come se ci fosse un'AND ...invece a me serve un'OR

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 ??