Как да използвате услуга OData v3.0 в рамките на Visual Studio 2017

Мъча се да намеря начин просто да използвам услуга OData v3.0 по какъвто и да е начин от Visual Studio 2017, така че мога да използвам клиентската библиотека, за да помогна за разработването на моето приложение/услуга за използване на данните.

Според страницата Microsoft OData Stack те изглежда имат всички инструменти и поддръжка за използване на OData v4 .0 услуга. Без да знам, че всъщност имам работа с услуга v3.0, следвах тези инструкции и както е описано на страницата, има две опции за инструменти, за да започнете. Единият е OData генератор на клиентски код, а другият е OData Connected Service разширения

След като се наложи да преминете през някои обръчи, за да накарате някой от тях да работи (вижте Проблем с GitHub за действително намиране на версия на Generator на клиентски код, която действително работи с VS2017, и опитвайки се да накарам свързаната услуга OData да работи с услуга, която изисква удостоверяване, най-накрая осъзнах, че работя с OData v3. Отговор 0. Така че тези инструменти не можаха да помогнат.

Сега противоречи на това, което всъщност се споменава на страницата на пазара на OData Connected Service, където казва „OData Connected Service for V1-V4“, това не работи. Ако услугата OData изисква удостоверяване, тогава получавам този диалогов прозорец за грешка при опит за добавяне на свързана услуга чрез разширението:

Грешка при опит за добавяне на услуга OData, която изисква удостоверяване със свързана услуга и разширение

И така, прочетох в проблем с GitHub (не мога да го намеря), че потенциално решение е да изтеглите XML, който се връща от натискане на крайната точка /$metadata, да го преименувате на whatever.edmx и да опитате да го използвате за разширението чрез предоставяне на file:// URI на този файл. Това не проработи със следния диалогов прозорец за грешка:

въведете описание на изображението тук

Тогава се отказах от този подход и вместо това се опитах да използвам генератор на клиентски код, и предоставяне на edmx файла на това в TT конфигурацията (за разрешаване на проблемите с удостоверяването и това не проработи, защото беше OData v3.0, а не 4.0.

Така че изглежда за v3.0 подходът е да се използва Add Service Reference, но когато го направя, получавам следната грешка:

въведете описание на изображението тук

..но този инструмент не поддържа v3.0.. така че сега нямам представа как да продължа!?

Всяка помощ ще бъде много оценена!


person flyte    schedule 21.03.2018    source източник
comment
Имах същия проблем и не можах да го разреша. stackoverflow.com/questions/48671346/ Изглежда, че Microsoft не поддържа инструментите си актуални. Можете да опитате моето предложение на този линк.   -  person CRice    schedule 22.03.2018
comment
Вижте отговора ми за работа, която изглеждаше като път на най-малкото съпротивление.   -  person flyte    schedule 26.03.2018


Отговори (1)


Само в случай, че някой друг се натъкне на тази конкретна комбинация и изглежда не може да продължи с потреблението на услуга OData v3.0 с текущия VS2017 (и по-специално как да го използвам във функция на Azure), ето какво направих, за да получа около това:

  1. Преинсталирайте VS2015 и създайте нов проект за библиотека
  2. Добавете нов справочник за услуга и насочете към вашата услуга OData v3 (или по-стара). ако услугата изисква удостоверяване, този диалогов прозорец ще ви позволи да въведете акредитивите. Бях подканен да ги въведа 2 пъти.
  3. Създайте клас/услуга/интерфейс, който ще изложи всички съответни таблици/заявки, които искате да консумирате от тази OData услуга
  4. Запазете проекта и затворете VS2015
  5. Копирайте този проект във вашето VS2017 решение. В моя случай имах решение, съдържащо Azure функция.
  6. Сега се обърнете към този нов проект/библиотека, за да получите данните.

Това е единственият начин, по който мога да накарам това да работи след много часове на отстраняване на различни ограничения и заобиколни решения на текущите версии. Излишно е да казвам, че съм доста разочарован от текущото състояние на инструментите + поддръжката на VS2017 за използване на по-стари версии на OData.

person flyte    schedule 26.03.2018
comment
Да се ​​налага да търсите стара версия на VS е много досадно, надяваме се, че скоро ще го поправят. - person CRice; 27.03.2018