Использование Microsoft.Xrm.Tooling для создания сервиса и контекста

Сейчас я обновляю программу интеграции, написанную для 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 ответ

Похоже, вы захотите переключиться на 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();
    }
}
Другие вопросы по тегам