Rachda, I really hope there is a better solution too, but for now, the LINQ supported at client side is too weak, there is no group by , there is no aggregation, there is no sub-select...
Let's just hope it be improved in future version.
For filter scenario, you can look at the Filter Control Extension, the filter control actually generate a filter string then pass it to server side, the server side do the actual filter. Although it not supported the child collection filtering, but
it should be easy to make it work.( I've done something same, which support child-collection filtering ).
Hope it helps.