При добавлении нового контроллера OData происходит сбой существующего контроллера

Я строю пример из двух примеров OData Web API, каждый из которых отлично работает как отдельный проект. Но когда я добавляю второй класс ODataController, сайт больше не работает, жалуясь на шаблоны путей OData, которые работали ранее. Вот больше деталей:

Следующее действие работает нормально, пока его контроллер (ProductsController) является единственным контроллером:

[HttpGet]
[ODataRoute("GetSalesTaxRate(state={state})")]
public IHttpActionResult GetSalesTaxRate([FromODataUri] string state)
{
    return Ok(GetRate(state));
}

Теперь я добавляю новый контроллер (MoviesController) с несколькими действиями.

Я расширяю класс запуска Owin, чтобы он выглядел так:

public void Configuration(IAppBuilder builder)
{
    var config = new HttpConfiguration();

    config.MapODataServiceRoute(routeName: "functions route", routePrefix: "functions", model: FunctionStartup.GetEdmModel());
    config.MapODataServiceRoute(routeName: "actions route", routePrefix: "actions", model: ActionStartup.GetEdmModel());

    builder.UseWebApi(config);
}

Однако когда я пытаюсь выполнить веб-запрос (URLBASE / functions / $ metadata), я получаю следующую ошибку:

System.InvalidOperationException. Шаблон пути «GetSalesTaxRate (state = {state})» в действии «GetSalesTaxRate» в контроллере «Products» не является допустимым шаблоном пути OData. Ресурс не найден для сегмента GetSalesTaxRate.

Контроллеры отображаются на разные маршруты («функции» и «действия»). Может быть, проблема в том, что каждый маршрут связан с его собственной EdmModel?

ОБНОВИТЬ. Я проверил, что могу добавить больше контроллеров, если они ссылаются на одну и ту же модель EDM. Но как только я ввожу вторую модель (и ссылаюсь на нее из MapODataServiceRoute), весь сервис ломается. Есть ли обходной путь для поддержки нескольких моделей?

ОБНОВЛЕНИЕ 2. Если я создаю подкласс DefaultHttpControllerTypeResolver и включаю только один контроллер (любой из них), то он также работает нормально. Но я все еще озадачен, почему несколько контроллеров, использующих разные модели, перестают работать.

Ответы на вопрос(1)

Ваш ответ на вопрос