使用Microsoft.Xrm.Tooling创建服务和上下文

时间:2018-09-23 23:08:21

标签: c# dynamics-crm microsoft-dynamics dynamics-365

我现在正在更新为Dynamics 2015编写的集成程序,以支持Dynamics365。目前,它使用Microsoft.Xrm.Client dll方法创建组织服务上下文。是否存在与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 :(得分:0)

您似乎想要切换到CrmServiceClient名称空间中的Microsoft.Xrm.Tooling.Connector

要获取NuGet软件包: 在项目中,右键单击“引用”节点,然后选择“管理NuGet软件包”。在浏览下搜索“ xrm工具”。安装Microsoft.CrmSdk.XrmTooling.CoreAssembly,您应该一切顺利。

然后通过connection string

创建一个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();
    }
}