【问题标题】:How to Consume an OData v3.0 Service within Visual Studio 2017如何在 Visual Studio 2017 中使用 OData v3.0 服务
【发布时间】:2018-03-27 04:09:21
【问题描述】:

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

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

在经历了一些困难之后才能让其中任何一个工作(请参阅GitHub Issue 以实际找到与 VS2017 一起工作的客户端代码生成器版本,并尝试解决以获取 OData 连接服务为了使用需要身份验证的服务,我终于意识到我正在使用 OData v3.0 响应。所以这些工具无济于事。

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

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

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

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

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

任何帮助将不胜感激!

【问题讨论】:

  • 我遇到了同样的问题,无法解决。 stackoverflow.com/questions/48671346/… 微软似乎没有更新他们的工具。您可以在此链接上尝试我的建议。
  • 查看我的答案,寻找一种似乎是阻力最小的解决方法。

标签: c# visual-studio-2017 odata


【解决方案1】:

以防万一其他人偶然发现此特定组合并且似乎无法继续使用当前 VS2017 使用 OData v3.0 服务(特别是关于如何在 Azure 函数中使用它),这就是我确实解决了这个问题:

  1. 重新安装VS2015并新建一个库项目
  2. 添加新的服务引用并指向您的 OData v3(或更早版本)服务。如果服务需要身份验证,此对话框将允许您输入凭据。系统提示我输入 2 倍。
  3. 创建一个类/服务/接口,该类/服务/接口将公开您有兴趣从该 OData 服务中使用的所有相关表/查询
  4. 保存项目并关闭VS2015
  5. 将此项目复制到您的 VS2017 解决方案中。就我而言,我有一个包含 Azure 函数的解决方案。
  6. 现在调用这个新项目/库来获取数据。

在对当前版本的各种限制和变通方法进行了许多小时的故障排除后,这是我能够使其正常工作的唯一方法。不用说,我对工具的当前状态 + VS2017 对使用旧版本 OData 的支持感到非常失望。

【讨论】:

  • 不得不去找旧的 VS 版本很烦人,希望他们能尽快解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 2019-06-13
  • 2018-04-08
  • 2018-07-04
  • 1970-01-01
相关资源
最近更新 更多