首页 > 解决方案 > 使用 Microsoft.Xrm.Tooling 创建服务和上下文

问题描述

我现在正在更新为 Dynamics 2015 编写的集成程序以支持 Dynamics 365。目前它使用 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 单独支持的方法

标签: c#dynamics-crmmicrosoft-dynamicsdynamics-365

解决方案


看起来您想要切换到名称空间CrmServiceClient中的。Microsoft.Xrm.Tooling.Connector

获取 NuGet 包:在您的项目中,右键单击“引用”节点并选择“管理 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();
    }
}

推荐阅读