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

Using Microsoft.Xrm.Tooling to create a service and context

我现在正在更新为 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 单独支持的方法

您似乎想要切换到 CrmServiceClient,它位于 Microsoft.Xrm.Tooling.Connector 命名空间中。

获取 NuGet 包: 在您的项目中,右键单击 References 节点和 select Manage NuGet Packages。在浏览下搜索 "xrm tooling"。安装 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();
    }
}