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

How to get list of items in an entity using DiscoveryService in Dynamics CRM 2016?

我正在尝试使用本地 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 does not contain a definition for RetrieveMultiple

我也试过使用下面的代码

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"]);
                    }

这加载正常,但项目中的所有值都是 null

您是否有特殊需要使用DiscoveryServiceClient? 如果这是一项工作,您 should/could 使用 IOrganizationService 来检索您的 EntityCollection。

这里有一点 Link,可能会对您有所帮助:https://docs.microsoft.com/en-us/previous-versions/dynamicscrm-2016/developers-guide/gg328029(v=crm.8)