我正在尝试使用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不包含以下定义: 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"]);
}
这可以很好地加载,但项目中的所有值均为空
答案 0 :(得分:1)
您是否特别需要使用DiscoveryServiceClient? 如果这是一项工作,那么您应该/可以使用IOrganizationService检索您的EntityCollection。
这里有一个小链接,可能会帮助您:https://docs.microsoft.com/en-us/previous-versions/dynamicscrm-2016/developers-guide/gg328029(v=crm.8)