4

我已使用此生成器成功生成 OData 客户端代码来访问我的 Dynamics CRM WebApi 服务。不幸的是,对于一个普通的组织,它生成了一个 ~30 MB 的 cs 文件。这是一种很大的方式,因为我只需要访问一些实体。

我知道我可以下载 OData 服务的元数据并在运行生成器之前手动编辑,但我正在寻找一种对开发人员更友好的方式。

我一直在寻找一种直接限制元数据的方法,但似乎 xml 元数据文件是静态的:Fetching $metadata for a specific collection or entity with Odata web services in Microsoft Dynamics NAV 2016

为某些实体生成代理类的最佳方法是什么?

编辑:我实际上试图通过删除 EntityType 节点和相应的 EntitySets 来手动编辑元数据文件,但该工具抱怨某些接口 IEdm ......所以仍然没有解决。

4

1 回答 1

1

我认为防止数据实体通过 ODATA 层公开的推荐方法是在 Dynamics 365 中将实体上的“公共”属性设置为 false。

我遇到了完全相同的问题;在 VS 2012 中使用 OData 客户端生成器自动生成 TT 代理文件,这会导致 50Mb 类。这使得 Visual Studio 在大多数情况下都极其不稳定地崩溃。

由于 D365 中有超过 2000 个实体,因此基本上不可能以这种方式将它们全部设置为私有,因为我们无法找到一种方法来选择多个实体并同时更新它们。

如果有人有直接的 SQL 更新或其他方式来实现这一点,我也想听听。

于 2017-08-30T23:38:42.783 回答