$ Метаданные с маршрутизацией атрибута OData WebAPi не работают

Я использую маршрутизацию атрибутов OData для конечной точки OData. Вот пример того, что у меня есть:

[ODataRoutePrefix("Profile")]
public class ProfileODataController : ODataController
{
    [ODataRoute]
    [EnableQuery]
    public IHttpActionResult Get()
    {
        var repo = new Repositories.ProfileRepository();

        return Ok(repo.GetProfiles());
    }

    [ODataRoute("({key})")]
    [EnableQuery]
    public IHttpActionResult Get([FromODataUri] string key)
    {
        var repo = new Repositories.ProfileRepository();

        var result = repo.GetProfiles().SingleOrDefault(x => x.Id== key);
        if (result == null) return NotFound();

        return Ok(result);
    }
}

Вот мои настройки:

config.MapODataServiceRoute("odata", "odata", ModelGenerator.GetEdmModel());

Вот мое поколение EdmModel:

public static IEdmModel GenerateEdmModel()
{
    var builder = new ODataConventionModelBuilder();

    builder.EntitySet<Profile>("Profile").EntityType.HasKey(x => x.Id);

    return builder.GetEdmModel();
}

URL/odata/Profile а также/odata/Profile('someid') оба работают, но когда я пытаюсь получить доступ к конечной точке $ metadata (/odata/$metadata#Profile), Я получаю следующую ошибку:

{"Message": "Не найден ресурс HTTP, соответствующий URI запроса 'http: //****/odata/$metadata'.","MessageDetail":"Нет найден тип, соответствующий контроллеру с именем «Метаданные». "}

Нужно ли создаватьконтроллер / действие для обслуживания метаданных? Если да, то как осуществляется это действие?

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

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