我已使用
this generator成功生成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 …所以仍未解决.
最佳答案 我相信阻止数据实体通过ODATA层公开的推荐方法是在Dynamics 365中将实体的“Public”属性设置为false.
我遇到了完全相同的问题;使用VS 2012中的OData客户端生成器自动生成TT代理文件,从而产生50Mb类.这使得Visual Studio在大多数情况下都非常不稳定.
由于D365中有超过2000个实体,因此我们无法通过这种方式将它们全部设置为私有,因为我们无法找到选择多个实体并同时更新所有实体的方法.
如果有人有直接的SQL更新或其他方式来实现这一点,我也想听听.