Неверное пространство имен схемы OData EntityContainer

Я использую ASP.NET MVC WebApi в качестве службы OData и хочу запросить эту службу OData с помощью Jaydata.

У Jaydata есть утилита командной строки (JaySvcUtil.exe), которая загружает определение сервиса ($metadata) и создает полнофункциональную клиентскую среду JayData/JavaScript, генерируя необходимый шаблонный код.

Web API + Odata создает эту страницу метаданных $: https://gist.github.com/3917081#file_metadata.xml

WebApiConfig: https://gist.github.com/3917081#file_web_api_config.cs.

когда я бегу

JaySvcUtil.exe -m http://odataserver.com:52132/api/$metadata -o Сценарии /test.js -n Тест.Тестирование

Он сгенерирует этот файл javascript https://gist.github.com/3917081#file_jaydatafile.js

Проблема в сгенерированном файле javascript:

Default.context = new Default.Container( { name:'oData', oDataServiceHost: 'http://servername:52132/api' });

Пространство имен = "Default" из-за следующего значения на странице метаданных $.

Schema Namespace="Default" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"

Как я могу изменить это значение пространства имен на странице метаданных $ или удалить его?


person Bas    schedule 19.10.2012    source источник


Ответы (1)


Он поддерживается в ночной сборке odata. http://aspnetwebstack.codeplex.com/discussions/353867

После обновления пакета до последней подписанной сборки. Вы можете изменить пространство имен в построителе моделей.

    private static IEdmModel GetEdmModel()
    {
        ODataModelBuilder modelBuilder = new ODataConventionModelBuilder();
        modelBuilder.Namespace = "xxx";
        modelBuilder.EntitySet<ProductionOrder>("ProductionOrders");
        return modelBuilder.GetEdmModel();
    }
person Hongye Sun    schedule 20.10.2012