$ Metadados com o roteamento de atributo ODAP WebAPi não funcionando

Estou usando o roteamento de atributo OData para um terminal OData. Aqui está um exemplo do que eu tenho:

[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);
    }
}

Aqui está a minha configuração:

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

Aqui está minha geração do EdmModel:

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

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

    return builder.GetEdmModel();
}

Os URLs/odata/Profile e/odata/Profile('someid') ambos funcionam, mas quando tento acessar o terminal $ metadata (/odata/$metadata#Profile), Estou tendo o erro a seguir:

{"Message": "Nenhum recurso HTTP foi encontrado que corresponda ao URI da solicitação 'http: //****/odata/$metadata'.","MessageDetail":" Nenhum tipo foi encontrado que corresponda ao controlador chamado 'Metadados'. "}

Preciso criar umcontrolador / ação para veicular os metadados? Em caso afirmativo, como essa ação é implementada?

questionAnswers(1)

yourAnswerToTheQuestion