Try to use service operation for data retrieval:
http://msdn.microsoft.com/en-us/library/cc668788.aspx[
^]
note: according MSDN, IQueryable: "Provides functionality to evaluate queries against a specific data source wherein the type of the data is not specified"
If you return IQueryable , I think you should implement custom linq provider over custom data source because odata protocol supports specific odata operations like $filter, $order, $expand for collections. It isn't hard:
http://msdn.microsoft.com/en-us/library/bb546158.aspx[
^]