c# - 从 edmx 模型生成 odata 类
问题描述
我正在尝试在另一个 ODATA API 的代码中处理来自现有 ODATA 端点的数据。
我不想手动重新创建所有模型,因此我希望使用现有的 edmx 模型在 C# 中创建我需要的类。
我查看了 Microsoft 提供的“odata 客户端代码生成器”,这似乎是一个完美的解决方案,但如果我直接连接到服务端点,我只能让它工作......如果我下载 edmx,它就不起作用文件并尝试使用它(即使教程说您可以使用 URL 或文件)。
有没有人能够成功地将这个 odata 客户端代码生成器连接到 edmx 文件?
如果我不能让它工作,是否有人对如何从这些 edmx 模型生成我需要的类有其他建议?
我特别尝试使用 Microsoft Project Online 中的元数据。它提供了这样的端点: https://[domain]/sites/pwa/_api/ProjectData/ $metadata
不幸的是,我无法直接连接到这个,因为它需要身份验证并且 odata 客户端代码生成器不支持身份验证......
解决方案
odata 客户端代码生成工具似乎不支持 VS 2017。我现在正在尝试 VS 2015。
编辑:我已经确认客户端代码生成工具适用于 Visual Studio 社区 2015。我无法让它工作,因为我在 Visual Studio Professional 2017 下运行它......微软员工在几个论坛上报告了这个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
推荐阅读
- java - 在外部 Tomcat 服务器上运行的 Springboot 在除 index.html 之外的所有内容上都会出现错误 404
- c# - 为什么我的与 DTO 相关的 Swagger.JSON 不会根据正在更新的 API.XML 文件中的定义进行更新?
- javascript - 使用 Vanilla Javascript 发布到 PHP 文件
- php - 使用 PHP 从 JSON 字典中的关联数组中提取随机元素
- node.js - 如何在 Node/Koa 中将流作为 JSON 响应的一部分返回?
- macos - 更改插入符号SwiftUI TextField MacOS的颜色
- javascript - 从从 http 调用接收到的数据中删除数组 - angularJS
- php - Laravel - 我的关系递归中的 N+1 问题
- c++ - 使用 fopen 打开 .pak 文件并将该文件应用于 const unsigned char* (C++)
- python - 使用输入while循环python的最大和最小数字