Есть ли способ использовать объединение с OData в Dynamics CRM API? - PullRequest
0 голосов
/ 10 апреля 2020

Есть ли способ превратить этот код в запрос API CRM Dynamics?

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"]
             });

Хорошо, я прочитал это документы , и я не совсем понял, как это работает.

Идея в том, чтобы сделать запрос у почтальона.

1 Ответ

1 голос
/ 11 апреля 2020

Я считаю, что что-то вроде этого должно сработать:

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, но если вы когда-нибудь столкнетесь с ограничения OData WebAPI, вы можете отправить запрос XML Fetch .

При создании запросов WebAPI REST Builder Джейсона Латтимера может быть незаменимым.

И в вашем исходном коде стоит подумать об использовании метода GetAttributeValue .

...