繁体   English   中英

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

[英]Retrieve contact id using email id in MS 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 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”的第一个参数找到(您是否缺少using指令或程序集引用?)

这是下面代码行的错误

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

            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM