When adding a key value to the controller context RouteValues, the value should be coerced into the appropriate CLR type based upon the Key of the EntitySet in question. The lack of this causes an issue with Guids since the "guid''" wrapper around the value is kept and sent along as a string.
Comments: If you are talking about odata routing, you can make this scenario work by adding [FromODataUri] attribute on the action parameter. For example: public IQueryable<Product> GetProducts([FromODataUri] Guid key) You can check the sample at http://aspnet.codeplex.com/SourceControl/changeset/view/ef6376cfd2bd#Samples/Net4/CS/WebApi/ODataServiceSample/ODataService/Controllers/ProductFamiliesController.cs for more details.
Comments: If you are talking about odata routing, you can make this scenario work by adding [FromODataUri] attribute on the action parameter. For example: public IQueryable<Product> GetProducts([FromODataUri] Guid key) You can check the sample at http://aspnet.codeplex.com/SourceControl/changeset/view/ef6376cfd2bd#Samples/Net4/CS/WebApi/ODataServiceSample/ODataService/Controllers/ProductFamiliesController.cs for more details.