I am working on a project where we need to create complex queries against a WCF service.
The service uses linq to sql at the backend and projects queries to data transfe
I believe that you can return DTO's by using OData services.
Take a look at http://www.codeproject.com/Articles/135490/Advanced-using-OData-in-NET-WCF-Data-Services. Particularly the 'Exposing a transformation of your database' section. You can flatten your entity objects into a DTO and have the client run queries against this DTO model.
Is that something you are looking for?