代码之家  ›  专栏  ›  技术社区  ›  Vignesh Subramanian

如何使用Dynamics CRM 2016中的DiscoveryService获取实体中的项目列表?

  •  1
  • Vignesh Subramanian  · 技术社区  · 8 年前

    我正在使用Prem上CRM 2016中的DiscoveryServiceClient获取联系人列表

    我添加了服务引用并创建了一个对象,但我不确定应该使用什么方法来获取实体项列表

                        CRMService.DiscoveryServiceClient client = new CRMService.DiscoveryServiceClient();
                        client.Open();
                        var query = new QueryExpression();
                        query.EntityName = "Contact";
    
                        query.ColumnSet = new ColumnSet { AllColumns = true };
                        var coll = client.RetrieveMultiple(query);
    
                        Console.WriteLine("Retrieved {0} entities", coll.Entities.Count());
                        foreach (var item in coll.Entities)
                        {
                            Console.WriteLine("Contact: " + item);
                        }
                        client.Close();
    

    当我使用上面的代码时,它说

    DiscoveryServiceClient不包含的定义 检索多个

    我还尝试使用下面的代码

    QueryExpression qe = new QueryExpression();
                        qe.EntityName = "contact";
                        qe.ColumnSet = new ColumnSet();
                        qe.ColumnSet.Columns.Add("emailaddress1");
                        EntityCollection ec = organizationProxy.RetrieveMultiple(qe);
     foreach (Entity act in ec.Entities)
                        {
                            Console.WriteLine("account email:" + act["emailaddress1"]);
                        }
    

    这可以很好地加载,但项中的所有值都为空

    1 回复  |  直到 8 年前
        1
  •  1
  •   Kini    8 年前

    您是否特别需要使用DiscoveryServiceClient? 如果这是一个作业,您应该/可以使用IOrganizationService来检索您的EntityCollection。

    这里有一个小链接,可以帮助您: https://docs.microsoft.com/en-us/previous-versions/dynamicscrm-2016/developers-guide/gg328029(v=crm.8)