генерация оддаты из модели edmx - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь работать с данными из существующей конечной точки ODATA в коде для другого API-интерфейса ODATA.

У меня нет желания воссоздавать все модели вручную, поэтому я надеялся использовать существующие модели edmx для создания нужных мне классов в C #.

Я посмотрел на «генератор кода клиента odata», предлагаемый Microsoft, и это кажется идеальным решением, но я могу заставить его работать, только если я подключаюсь напрямую к конечной точке сервиса ... он не работает, если я загрузите файл edmx и попробуйте использовать его (хотя в учебном пособии сказано, что вы можете использовать URL-адрес или файл).

Кто-нибудь смог успешно подключить этот генератор кода клиента odata к файлу edmx?

Если я не могу заставить это работать, у кого-нибудь есть другие предложения о том, как генерировать классы, которые мне нужны, из этих моделей edmx?

Я специально пытаюсь работать с метаданными из Microsoft Project Online. Это дает конечную точку как это: https://[domain]/sites/pwa/_api/ProjectData/$metadata

К сожалению, я не могу напрямую подключиться к этому, потому что это требует аутентификации, а генератор кода клиента odata не поддерживает аутентификацию ...

1 Ответ

0 голосов
/ 30 августа 2018

Похоже, VS 2017 не поддерживается инструментом генерации клиентского кода odata. Я сейчас пробую VS 2015.

Edit: Я подтвердил, что инструмент генерации клиентского кода работает с Visual Studio Community 2015. Я не смог заставить его работать, потому что я запускал его под Visual Studio Professional 2017 ... Сотрудники Microsoft сообщили на нескольких форумах, что этот инструмент не Поддерживаю под VS 2017.

Кроме того, я обнаружил, что этот сервис все равно не будет работать с генератором клиентского кода OData, так как это OData V3, а инструмент работает только с OData V4. Вы должны использовать DataSvcUtil.exe для генерации кода из более ранних версий OData. Я скачал файл .edmx и запустил следующую команду для генерации классов:

"%windir%\Microsoft.NET\Framework\v3.5\DataSvcUtil.exe" /dataservicecollection /version:2.0 /language:CSharp /out:TestOutput.cs /in:C:\Users\[username]\DevelLocal\test1.edmx
...