CRM RetrieveMultipleResponse 不返回任何结果
CRM RetrieveMultipleResponse not returning any results
我正在尝试制作一个控制台应用程序以使用 Dynamics CRM SDK 和 C# 检索结果,但我似乎无法从我的查询中获得任何结果。我能够看到我已连接到服务器,但我尝试制作的任何 QueryExpression 似乎都没有返回,即使我没有设置过滤器也是如此。即使使用我们有相应值的文档中的示例,我最终还是空手而归。我的代码是:
CrmServiceClient crmSvc = new CrmServiceClient(ConfigurationManager.ConnectionStrings["MyCRMServer"].ConnectionString);
Console.WriteLine(crmSvc.IsReady);
//Display the CRM version number and org name that you are connected to.
Console.WriteLine("Connected to CRM! (Version: {0}; Org: {1}",
crmSvc.ConnectedOrgVersion, crmSvc.ConnectedOrgUniqueName);
QueryExpression userSettingsQuery = new QueryExpression("contact");
userSettingsQuery.ColumnSet.AllColumns = true;
var retrieveRequest = new RetrieveMultipleRequest()
{
Query = userSettingsQuery
};
EntityCollection EntCol = (crmSvc.ExecuteCrmOrganizationRequest(retrieveRequest) as RetrieveMultipleResponse).EntityCollection;
foreach (var a in EntCol.Entities)
{
Console.WriteLine("Account name: {0} {1}", a.Attributes["firstname"], a.Attributes["lastname"]);
}
Console.Write(crmSvc.LastCrmError);
Console.Write(crmSvc.LastCrmException);
Console.ReadLine();
它returns没有错误,连接显示为 True,我似乎无法从这里找到从哪里开始进行故障排除。
你的代码对我来说工作正常,所以可能是你所连接的用户没有读取 contact
记录的权限,或者你的 CRM 组织中没有 contact
记录。
此外,我知道您正在尝试拼凑一个样本,但我在下面拼凑了一个更直接的代码版本。
var crmSvc = new CrmServiceClient(<CONNECTION STRING>);
var contactQuery = new QueryExpression("contact")
{
ColumnSet = new ColumnSet("firstname", "lastname")
};
var contacts = crmSvc.RetrieveMultiple(contactQuery).Entities;
foreach(var contact in contacts)
{
Console.WriteLine("Contact name: {0} {1}", contact.GetAttributeValue<String>("firstname"), contact.GetAttributeValue<String>("lastname"));
}
我正在尝试制作一个控制台应用程序以使用 Dynamics CRM SDK 和 C# 检索结果,但我似乎无法从我的查询中获得任何结果。我能够看到我已连接到服务器,但我尝试制作的任何 QueryExpression 似乎都没有返回,即使我没有设置过滤器也是如此。即使使用我们有相应值的文档中的示例,我最终还是空手而归。我的代码是:
CrmServiceClient crmSvc = new CrmServiceClient(ConfigurationManager.ConnectionStrings["MyCRMServer"].ConnectionString);
Console.WriteLine(crmSvc.IsReady);
//Display the CRM version number and org name that you are connected to.
Console.WriteLine("Connected to CRM! (Version: {0}; Org: {1}",
crmSvc.ConnectedOrgVersion, crmSvc.ConnectedOrgUniqueName);
QueryExpression userSettingsQuery = new QueryExpression("contact");
userSettingsQuery.ColumnSet.AllColumns = true;
var retrieveRequest = new RetrieveMultipleRequest()
{
Query = userSettingsQuery
};
EntityCollection EntCol = (crmSvc.ExecuteCrmOrganizationRequest(retrieveRequest) as RetrieveMultipleResponse).EntityCollection;
foreach (var a in EntCol.Entities)
{
Console.WriteLine("Account name: {0} {1}", a.Attributes["firstname"], a.Attributes["lastname"]);
}
Console.Write(crmSvc.LastCrmError);
Console.Write(crmSvc.LastCrmException);
Console.ReadLine();
它returns没有错误,连接显示为 True,我似乎无法从这里找到从哪里开始进行故障排除。
你的代码对我来说工作正常,所以可能是你所连接的用户没有读取 contact
记录的权限,或者你的 CRM 组织中没有 contact
记录。
此外,我知道您正在尝试拼凑一个样本,但我在下面拼凑了一个更直接的代码版本。
var crmSvc = new CrmServiceClient(<CONNECTION STRING>);
var contactQuery = new QueryExpression("contact")
{
ColumnSet = new ColumnSet("firstname", "lastname")
};
var contacts = crmSvc.RetrieveMultiple(contactQuery).Entities;
foreach(var contact in contacts)
{
Console.WriteLine("Contact name: {0} {1}", contact.GetAttributeValue<String>("firstname"), contact.GetAttributeValue<String>("lastname"));
}