我曾经使用CrmSvcUtil 和 2011 端点为 Dynamics CRM 生成早期绑定类。
这仍然有效,但由于被弃用,所以我试图了解新的 OData 端点并使用它来生成类。
您可以通过浏览到相应的 URL 查看 CRM 的实体模型 XML:
或者,您也可以从 CRM 的开发人员部分下载 XML:
无论哪种情况,您最终都会得到定义实体模型的 XML:
<?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx">
<edmx:Reference Uri="http://vocabularies.odata.org/OData.Community.Keys.V1.xml">
<edmx:Include Namespace="OData.Community.Keys.V1" Alias="Keys" />
<edmx:IncludeAnnotations TermNamespace="OData.Community.Keys.V1" />
</edmx:Reference>
<edmx:Reference Uri="http://vocabularies.odata.org/OData.Community.Display.V1.xml">
<edmx:Include Namespace="OData.Community.Display.V1" Alias="Display" />
<edmx:IncludeAnnotations TermNamespace="OData.Community.Display.V1" />
</edmx:Reference>
.... blah blah ....
如何将其转换为一组强类型 C# 类?
我发现本指南建议使用 OData v4 客户端代码生成器工具,但这似乎有点矫枉过正,我宁愿避免使用将来可能停止工作的工具。
我还看到了DataSvcUtil.exe 的 MSDN 文章,它可以转换 EDMX 文件,但我有一个 XML。我尝试更改文件扩展名,但它不会转换,它会引发错误:
错误 7001:“Scale”属性无效 - 根据其数据类型“ http://schemas.microsoft.com/ado/2007/05/edm:TScaleFacet ”,值“Variable”无效 - 字符串“Variable”为不是有效的整数值。
字符串“变量”不是有效的整数值。
我现在被卡住了,不确定哪种是推荐的方法。