CRM 4.0 - 从电子邮件地址中提取联系人数据

时间:2013-01-27 18:23:51

标签: c# asp.net crm dynamics-crm-4

我正在尝试使用电子邮件地址来检索联系人数据。我已经在使用它,但我想知道如何扩展它,以便也可以返回自定义字段:

    public ContactInfo GetContactByEmail(string email, CrmService service)
    {
        QueryExpression query = new QueryExpression();

        query.EntityName = "contact";
        ColumnSet columns = new ColumnSet();
        columns.Attributes.Add("contactid");

        query.ColumnSet = columns;
        query.Criteria = new FilterExpression();
        query.Criteria.FilterOperator = LogicalOperator.And; 

        ConditionExpression condition = new ConditionExpression();
        condition.AttributeName = "emailaddress1";
        condition.Operator = ConditionOperator.Equal;
        condition.Values = new object[] { email.Trim() };
        query.Criteria.Conditions.Add(condition);

        RetrieveMultipleRequest request = new RetrieveMultipleRequest();
        request.Query = query;

        ContactInfo contactInfo = new ContactInfo();

        RetrieveMultipleResponse response = null;
        response = (RetrieveMultipleResponse)service.Execute(request);
        foreach (contact cont in response.BusinessEntityCollection.BusinessEntities)
        {
            contactInfo.contactid = cont.contactid.Value;

           //Would also like to retrieve a custom attribute called ContactType (type int)
        }

        return contactInfo;
    }

任何帮助或示例都会非常感激。谢谢。

1 个答案:

答案 0 :(得分:0)

您只需要向ColumnSet添加其他值,例如

ColumnSet columns = new ColumnSet();
columns.Attributes.Add("new_contacttype");

注意:此处的名称应为架构,而不是显示。

示例: