MS Dynamics 4.0:根据电子邮件地址检查记录是否存在

时间:2012-06-27 11:14:09

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

我遇到了一个需要根据给定的电子邮件地址返回记录的GUID的方法。这就是我现在所拥有的:

        ColumnSet columnSet = new ColumnSet();
        columnSet.AddColumns(new[] { "leadid" });

        var query = new QueryExpression
        {
            EntityName = "lead",
            ColumnSet = columnSet
        };

        FilterExpression leadFilter = new FilterExpression();
        leadFilter.AddCondition(new ConditionExpression
        {
            AttributeName = "emailaddress1",
            Operator = ConditionOperator.Equal,
            Values = new object[] { emailAddress }
        });

        query.Criteria = leadFilter;

        BusinessEntityCollection result = crmService.RetrieveMultiple(query);

        foreach (BusinessEntity record in result)
        {
            //Guid leadId = ?? Not sure how to extract it. 
        }

A)这看起来有点矫枉过正,因为我只需要一条记录(但不认为我可以使用Retrieve,因为我没有id)。 B)如何在foreach中实际从上面检索GUID?

感谢。

1 个答案:

答案 0 :(得分:1)

A)无法保证您只返回一个实体,例如,可能存在多个具有相同电子邮件地址的潜在客户。

B)您可以将BusinessEntity强制转换为您查询的实体,它是所有其他实体类型的抽象基类。