Использование Microsoft.Xrm.Tooling для создания сервиса и контекста - PullRequest
0 голосов
/ 24 сентября 2018

Сейчас я обновляю программу интеграции, написанную для Dynamics 2015, для поддержки Dynamics 365. В настоящее время она использует методы dll Microsoft.Xrm.Client для создания контекста службы организации.Существует ли эквивалент Microsoft.Xrm.Tooling, так как Microsoft.Xrm.Client кажется неподдерживаемым.

 var getCRMOrgService = CreateCRMOrgService(logger);
            var client = CreatePosPerfectConnection(logger);

            if (getCRMOrgService != null)
            {
                using (var ctx = new DataContext(new CrmOrganizationServiceContext(getCRMOrgService)))
                {
                    ctx.TryAccessCache(cache => cache.Mode = OrganizationServiceCacheMode.Disabled);
/******Rest of the code******/

Здесь я должен изменить методы CreateCRMOrgService и CrmOrganizationServiceContext на методы, поддерживаемые только Microsoft.Xrm.Tooling

1 Ответ

0 голосов
/ 29 сентября 2018

Похоже, вы захотите переключиться на CrmServiceClient, который находится в пространстве имен Microsoft.Xrm.Tooling.Connector.

Чтобы получить пакет NuGet: В своем проекте щелкните правой кнопкой мыши узел References и выберитеУправление пакетами NuGet.В разделе «Поиск» введите «xrm tooling».Установите Microsoft.CrmSdk.XrmTooling.CoreAssembly, и все будет хорошо.

Затем создайте CrmServiceClient через строку подключения

var svc = new CrmServiceClient(connectionString);

Затем для контекста (поставщик запросов) сделайте что-то вроде этого (обратите внимание, это непроверенный код):

private List<Entity> getRecords()
{
    using (var context = new Microsoft.Xrm.Sdk.Client.OrganizationServiceContext(svc))
    {
        var result = from e in organizationServiceContext.CreateQuery("new_entity")
                     where e.GetAttributeValue<string>("new_field") == "my value"
                     select e;
        return result.Take(100).ToList();
    }
}
...