从edmx模型生成odata类

时间:2018-08-29 22:51:08

标签: c# odata edmx

我正在尝试使用另一个ODATA API的代码来处理来自现有ODATA端点的数据。

我不希望手动重新创建所有模型,因此我希望使用现有的edmx模型在C#中创建所需的类。

我调查了Microsoft提供的“ odata客户端代码生成器”,这似乎是完美的解决方案,但是只有直接连接到服务端点时,我才能使它工作...如果我直接连接到服务端点,则它无法工作。下载edmx文件并尝试使用它(即使本教程说您可以使用URL或文件)。

实际上有没有人能够成功地将此odata客户端代码生成器连接到edmx文件?

如果无法正常工作,是否有人对如何从这些edmx模型生成所需的类有其他建议?

我专门尝试使用Microsoft Project Online中的元数据。它给出了这样的端点: https://[domain]/sites/pwa/_api/ProjectData/ $ metadata

不幸的是,我无法直接连接到此,因为它需要身份验证,而odata客户端代码生成器不支持身份验证...

1 个答案:

答案 0 :(得分:0)

看来odata客户端代码生成工具不支持VS 2017。我现在正在尝试VS 2015。

编辑: 我已经确认客户端代码生成工具可与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