score:0

i don't undersant what do you want ? if you want the competition which have events with results infos in 2013 and result infos also in 2013 you can do this :

model.where(c => c.childevents
                  .selectmany(ce => ce.resultinfos)
                  .where(ri => ri.season == 2013).count() > 0
            &&
            c.resultinfos.where(ri => ri.season == 2013).count() > 0)
     .tolist();

but i'm not sure that i undersand what you need

score:1

you can do:

var competitions = new competition(); // populated competition class

var results = (from c in competitions
               from e in c.childevents
               from ri in e.resultinfos
               where ri.season == 2013).tolist();

it's unclear why you need an additional where but you could extend it and have another clause such as

where ri.season == 2013 && eventname == "event"

as @von.v has pointed out, you can access resultinfos directly via the competition class, so you can simplify it via:

   var results = (from c in competitions
                  from ri in c.resultinfos
                  where ri.season == 2013).tolist();

Related Query

More Query from same tag