The name of the controller should be same with the EntitySet name by default, which is WorkCategories. So other controller name except for WorkCategoriesController won't work unless you create your own IODataRoutingConvention.
For the method name, webapi has its default routing rule.
- For get entityset, GetWorkCategories() and Get() will work.
- For get entity, GetWorkCategory(int key) and Get(int key) will work.
If you want to customize the method name, you can use AttributeRouting in webapi 2.2. http://blogs.msdn.com/b/webdev/archive/2014/03/13/getting-started-with-asp-net-web-api-2-2-for-odata-v4-0.aspx
[ODataRoute("WorkCategories/WhateverName")]
public IQueryable WhateverName() {...}