如何使用Dynamics CRM SDK搜索潜在客户或帐户?

Dav*_*ers 4 c# dynamics-crm dynamics-crm-online

有人可以提供一个示例代码,用于通过CRM SDK中的电子邮件检索潜在客户吗?有没有像这样工作的内置功能?

Guid leadID = someLeadManager.GetByEmail(email);
Run Code Online (Sandbox Code Playgroud)

Kon*_*ten 9

假设您已获得该服务,则可以执行以下查询.

private Guid GetGuidByEmail(String email)
{
  QueryExpression query = new QueryExpression
  {
    EntityName = "lead",
    ColumnSet = new ColumnSet("emailaddress1"),
    Criteria = new FilterExpression
    {
      Filters =
      {
        new FilterExpression
        {
          Conditions =
          {
            new ConditionExpression(
              "emailaddress1", ConditionOperator.Equals, email)
          }
        }
      }
    }
  };

  Entity entity = service.RetrieveMultiple(query).Entities.FirstOrDefault();
  if(entity != null)
    return entity.Id;
  return Guid.Empty;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果您需要对部分电子邮件的匹配进行过滤,则查询会变短,相反,您可以使用LINQ进行选择.

private IEnumerable<Guid> GetGuidsByEmail(String email)
{
  QueryExpression query = new QueryExpression
  {
    EntityName = "lead",
    ColumnSet = new ColumnSet("emailaddress1")
  };
  IEnumerable<Entity> entities = service.RetrieveMultiple(query).Entities;

  return entities
    .Where(element => element.Contains("emailaddress1"))
      .Where(element => Regex.IsMatch(element["emailaddress1"], email))
        .Select(element => element.Id);
}
Run Code Online (Sandbox Code Playgroud)