使用MS Dynamics CRM中的电子邮件ID检索联系ID



我想使用MS Dynamics CRM中的CONPONE EMAME ID使用C#

使用联系人的电子邮件ID来检索Contact ID EG(3A361FD6-E276-E911-E911-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'不包含"属性"的定义,并且没有扩展方法'属性'接受类型'Microsoft.xrm.sdk.entityCollection的第一个参数'属性'可以找到(您是否缺少使用指令或装配给参考?(

这是下面代码行的错误

Guid contactId = (Guid)contact.Attributes["contactid"];

原因:您正在检索多个,即它是实体收集。所以你应该迭代。下面我给了您第一个联系ID,但您可以循环并获得所有ContactID的

正确的代码:

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

最新更新