如何在Visual Studio 2017中使用OData v3.0服务

时间:2018-03-21 23:43:55

标签: c# visual-studio-2017 odata

我正在努力寻找一种方法,可以在Visual Studio 2017中以任何方式简单地使用OData v3.0服务,因此我可以使用客户端库来帮助开发我的应用程序/服务来使用数据。

根据Microsoft OData Stack页面,他们似乎拥有使用OData v4.0服务的所有工具和支持。不知道我实际上正在处理v3.0服务,我按照这些说明进行操作,如页面所述,有两个工具选项可以帮助您入门。一个是OData Client Code Generator,另一个是OData Connected Service扩展

在必须通过一些箍甚至让任何一个工作之后(参见GitHub Issue实际查找实际与VS2017一起使用的客户端代码生成器版本,并尝试解决OData问题连接服务使用需要身份验证的服务,我终于意识到我正在使用OData v3.0响应。所以这些工具无法帮助。

现在与OData Connected Service市场页面上实际提到的内容相矛盾,其中显示的是“OD-4连接服务V1-V4”,这不起作用。如果OData服务需要身份验证,那么我尝试通过扩展程序添加连接服务时会出现此错误对话框:

Error when trying to add OData Service that requires Auth with Connected Servcie and extension

那么我读了一个GitHub问题(无法找到它),是否可以解决从命中/ $ metadata端点返回的XML,将其重命名为whatever.edmx和尝试通过向该文件提供file:// URI来将其用于扩展。这不适用于以下错误对话框:

enter image description here

然后我放弃了这种方法并试图改为使用Client Code Generator,并在TT配置中提供edmx文件(以解决身份验证问题,但这不起作用,因为它是OData v3 .0而不是4.0。

那么,似乎对于v3.0,方法是使用Add Service Reference,但是当我这样做时,我得到以下错误:

enter image description here

..但该工具不支持v3.0 ..所以现在我不知道如何继续!?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

以防其他人偶然发现这个特定的组合并且似乎无法继续使用当前的VS2017使用OData v3.0服务,(特别是如何在Azure功能中使用它),这就是我的意思做到了解决这个问题:

  1. 重新安装VS2015并创建一个新的库项目
  2. 添加新的服务参考并指向您的OData v3(或更早版本)服务。如果服务需要身份验证,此对话框将允许您输入信用。我被提示输入2x。
  3. 创建一个类/服务/接口,它将公开您有兴趣从该OData服务中消费的所有相关表/查询
  4. 保存项目并关闭VS2015
  5. 将此项目复制到VS2017解决方案。就我而言,我有一个包含Azure功能的解决方案。
  6. 现在请求这个新项目/库获取数据。
  7. 这是我在对当前版本的各种限制和变通方法进行多个小时的故障排除后才能使其工作的唯一方法。毋庸置疑,我对工具的当前状态+ VS2017支持使用旧版OData感到非常失望。