使用OData客户端生成器如何选择应该生成代理类的实体?

使用OData客户端生成器如何选择应该生成代理类的实体?,odata,dynamics-crm,metadata,t4,dynamics-crm-webapi,Odata,Dynamics Crm,Metadata,T4,Dynamics Crm Webapi,我已成功生成OData客户端代码,用于访问我的Dynamics CRM WebApi服务。不幸的是,对于一个普通的组织来说,它生成了一个约30 MB的cs文件。这是一个非常大的方法,因为我只需要访问几个实体 我知道我可以下载OData服务的元数据并在运行生成器之前手动编辑,但我正在寻找一种更为开发人员友好的方式 我已经寻找了一种直接限制元数据的方法,但xml元数据文件似乎是静态的: 仅为某些实体生成代理类的最佳方法是什么 编辑:我实际上试图通过删除EntityType节点和相应的EntitySe

我已成功生成OData客户端代码,用于访问我的Dynamics CRM WebApi服务。不幸的是,对于一个普通的组织来说,它生成了一个约30 MB的cs文件。这是一个非常大的方法,因为我只需要访问几个实体

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

我已经寻找了一种直接限制元数据的方法,但xml元数据文件似乎是静态的:

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


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

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

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

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


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

如果你说的是Svcutil,这里有人有一个解决方案@JamesWood No,而不是CrmSvcUtil,我已经添加了一个链接到WebApi服务推荐的客户端代码生成器。你找到解决方案了吗?@F.H.没有,还没有时间研究它。目前,我正在使用一个更简单的库访问OData服务(没有自动生成的代理类,手动构造url;只帮助我解析响应)。