【发布时间】:2017-12-12 04:07:11
【问题描述】:
我正在尝试使用 C# 访问 CRM 的 WebAPI,我想知道是否有一种方法可以为 WebAPI 响应生成强类型,类似于 CrmSvcUtil 用于基于组织服务生成强类型的方式
我尝试使用 OData v4 客户端代码生成器(可从 Marketplace 获得)生成代码,这适用于简单结构(整数、字符串、小数),但它似乎有一个更复杂类型的问题(例如查找)
例如,拨打 /api/data/v9.0/accounts(fca0da1c-8fc3-e711-a825-000d3ae09197)?$select=_primarycontactid_value 将检索指定帐户的主要联系人 ID。
问题是_primarycontactid_value 没有映射到为Account 生成的对象的任何属性,并且当反序列化 JSON 结果时,primarycontactid 属性保留为 null
在下面解决 Darryl 的评论;我决定直接使用 CRM WebAPI(而不是通过 SDK)是基于 here 找到的信息:
如 Microsoft Dynamics CRM 2011 端点中所述,Dynamics CRM 不推荐使用 2011 端点以支持 Web API。弃用 端点是一件大事,尤其是当编程模型 与这两个端点一样不同。我们强烈 鼓励开发人员将 Web API 用于连接的应用程序 到 CRM。 对于插件和工作流程序集,您可以继续使用 SDK 程序集。 在即将发布的版本中,我们将修改这些程序集 以便他们使用 Web API 而不是 2011 端点。
我认为语言很模棱两可。微软表示将使用 SDK 程序集,但也指出它们只能用于插件和工作流
来自 MS 的另一个链接指出应该使用 CRM WebAPI:
https://docs.microsoft.com/en-au/dynamics365/customer-engagement/developer/choose-development-style
【问题讨论】:
-
您希望通过 SDK 调用使用 WebApi 什么?已经多次说过,SDK 调用将在内部替换为 WebApi 调用...
-
@Daryl 我添加了一个编辑,我试图回答你的问题。简短的回答是,我发现 Microsoft 的文档非常含糊
-
@Daryl 来自 MS 的更多文档说明我们应该使用 WebApi
-
如果您在 Windows 上进行开发,您应该使用工具程序集(内置于 SDK 中),不是吗?
标签: c# dynamics-crm-online dynamics-crm-365 dynamics-crm-webapi