title: OData v4 Routing Prefix?
body: <p>I have a side-by-side Web API 2.2 APIController and OData v4 ODataController. My APIController uses routing attributes internally like this (there are no predefined routing defaults):</p>
  
  <pre><code>  [RoutePrefix("api")]
    public class MyController : ApiController
    {
      [HttpGet]
      [Route("My")]
      public IHttpActionResult Get()
      {
        //Code Here
      }
  
      [HttpGet]
      [Route("My")]
      public IHttpActionResult Get([FromUri] String mykey)
      {
        //Code Here
      }
    }
  </code></pre>
  
  <p>and as such are routed to through ./api/My and ./api/My/?mykey=value</p>
  
  <p>and I've tried setting up my ODataController to follow a similar suit with:</p>
  
  <pre><code>  [ODataRoutePrefix("My")]
    public class oMyController : ODataController {
  
      [HttpGet]
      public IHttpActionResult Get(ODataQueryOptions&lt;FileModel&gt; queryOptions) {
        //Code Here
      }
  
      [HttpGet]
      [ODataRoute("({mykey})")]
      public IHttpActionResult Get([FromODataUri] String mykey) {
        //Code Here
      }
    }
  </code></pre>
  
  <p>defining odata route ahead of time like this:</p>
  
  <pre><code>  ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
    builder.EntitySet&lt;MyModel&gt;("My");
    config.MapODataServiceRoute(
      routeName: "ODataRoute",
      routePrefix: "odata",
      model: builder.GetEdmModel()
    );
  </code></pre>
  
  <p>but attempts to access ./odata/My and ./odata/My(value) end up going into my APIController instead of the ODataController.</p>
  
  <p>How can I route these using the different prefixes, but the same name, and have them go to the appropriate controllers. I don't want to have a different name for each route if I can prevent it, the prefixes should take care of everything, but for some reason they're not.</p>