C# 在MS Dynamics CRM中使用电子邮件id检索联系人id

C# 在MS Dynamics CRM中使用电子邮件id检索联系人id,c#,dynamics-crm,C#,Dynamics Crm,我想使用C在MS Dynamics CRM中使用联系人的电子邮件id检索联系人id,例如(3a361fd6-e276-e911-9714-00155d96a17d)# 有人能帮我吗?下面是我的代码 Uri UrlCrm = new Uri(CRMUrl); String UserLogin = Domain + "\\" + Username; String password = Password; ClientCredentials credentials = new ClientCreden

我想使用C在MS Dynamics CRM中使用联系人的电子邮件id检索联系人id,例如(3a361fd6-e276-e911-9714-00155d96a17d)#

有人能帮我吗?下面是我的代码

Uri UrlCrm = new Uri(CRMUrl);
String UserLogin = Domain + "\\" + Username;
String password = Password;
ClientCredentials credentials = new ClientCredentials();

credentials.Windows.ClientCredential.UserName = UserLogin;
credentials.Windows.ClientCredential.Password = password;
OrganizationServiceProxy serverProxy = new OrganizationServiceProxy(UrlCrm, null, credentials, null);

IOrganizationService service;
service = (IOrganizationService)serverProxy;

QueryExpression query = new QueryExpression("contact");
    string[] cols = { "contactid", "emailaddress1" };
    query.Criteria = new FilterExpression();
    query.Criteria.AddCondition("emailaddress1", ConditionOperator.Equal, "Divakar.Ragupathy8@sqs.com");
    query.ColumnSet = new ColumnSet(cols);
    var contact = service.RetrieveMultiple(query);
    //Entity contact = new Entity("contact");
    Guid contactId = (Guid)contact.Attributes["contactid"];

GuidKey = contactId.ToString();
我得到以下错误:

描述:第20行出现编译器错误:“Microsoft.Xrm.Sdk.EntityCollection”不包含“Attributes”的定义,并且找不到接受类型为“Microsoft.Xrm.Sdk.EntityCollection”的第一个参数的扩展方法“Attributes”(是否缺少using指令或程序集引用?)


下面是代码行的错误

Guid contactId = (Guid)contact.Attributes["contactid"];
原因:您正在检索多个,即它是实体集合。所以你应该迭代。下面我已经给了你第一个联系人Id,但你可以循环并获得所有联系人Id

正确代码:

if(contact.Entities.Count>0){
 Guid contactId = contact.Entities[0].Id;
}
现在,如果您需要所有conatcId,这里还有一个代码片段

foreach (Entity con in contact.Entities)
                {
                    Console.WriteLine("Contact ID is: " + con.ID);

            }