This is the second most important odata commands after $filter. It's also trivial to implement because it's directly translatable to Dynamiclinq without alteration other than escaping it.
Comments: Based on http://blogs.msdn.com/b/alexj/archive/2012/08/21/web-api-queryable-current-support-and-tentative-roadmap.aspx, it sounds like there are several issues in integrating even a basic version of select: 1. The select portion of the Uri needs to be parsed into the query options. 2. The select portion of the query options needs to be applied to the source IQueryable so only those fields needed at the result are queried from the original data source (like the DB) 3. The query options (or some other object containing that information) needs to be used by the formatter (since the action is still returning a IQueryable<T>) to only pull the relevant fields into the result. This also means that if you don't use the QueryableAttribute but instead deal with the options manually, you would need to basically create a new T that only has those relevant fields populated, since the action method still has to return a IQueryable<T>, not the anonymous type resulting from the Select.
Comments: Based on http://blogs.msdn.com/b/alexj/archive/2012/08/21/web-api-queryable-current-support-and-tentative-roadmap.aspx, it sounds like there are several issues in integrating even a basic version of select: 1. The select portion of the Uri needs to be parsed into the query options. 2. The select portion of the query options needs to be applied to the source IQueryable so only those fields needed at the result are queried from the original data source (like the DB) 3. The query options (or some other object containing that information) needs to be used by the formatter (since the action is still returning a IQueryable<T>) to only pull the relevant fields into the result. This also means that if you don't use the QueryableAttribute but instead deal with the options manually, you would need to basically create a new T that only has those relevant fields populated, since the action method still has to return a IQueryable<T>, not the anonymous type resulting from the Select.