有没有办法在 Dynamics CRM API 中使用与 OData 的连接?

Is there a way to use join with OData in Dynamics CRM API?

有没有办法将此代码转换为 CRM Dynamics API 请求?

var t = (from contact in lServiceContext.CreateQuery("contact")
             join account in lServiceContext.CreateQuery("account") on contact["parentcustomerid"] equals account["accountid"]
             where contact[key].Equals(value) && contact["statuscode"].Equals(1)
             select new
             {
                 AccountID = !account.Contains("accountid") ? string.Empty : account["accountid"],
                 AccountNumber = !account.Contains("accountnumber") ? string.Empty : account["accountnumber"],
                 AccountR3 = !account.Contains("new_r3number") ? string.Empty : account["new_r3number"]
             });

好吧,我读了这个 docs 但我不太明白它是如何工作的。

想法是向邮递员提出请求。

我相信这样的事情应该可以解决问题:

https://myOrg.crm.dynamics.com/api/data/v9.1/contacts?$select=contactid,fullname,_parentcustomerid_value&$expand=parentcustomerid_account($select=accountid,accountnumber,name,new_r3number)

在这种情况下,看起来您可以使用 OData 查询,但如果您 运行 遇到 WebAPI 的 OData 限制,您可以 submit a FetchXML query.

在构建 WebAPI 查询时,Jason Lattimer's REST Builder 是必不可少的。

并且,在您的原始代码中,可能值得考虑使用 GetAttributeValue 方法。