CRM 2011 - быстрый поиск аккаунта по домену адреса электронной почты - PullRequest
0 голосов
/ 09 декабря 2011

Я ищу самый быстрый способ вернуть набор учетных записей, у которых есть контакты с адресами электронной почты, которые соответствуют доменному имени в CRM 2011. Я использую ранние объекты.Я думаю, что запрос Linq будет самым простым, быстрым, но не уверен, с чего начать.Спасибо.

Ответы [ 2 ]

2 голосов
/ 09 декабря 2011

Вам понадобится что-то вроде этого:

var query = (
    from c in ctx.contacts
    where c.emailaddress1.Substring(c.emailaddress1.IndexOf('@')) == "@domain.com"
    && c.statuscode == 0
    select c);

Предполагается, что вы уже создали классы раннего связывания и настроили контекст данных.

Эта ссылка дает совсем немногоинформации о том, что вам нужно, чтобы запустить код Linq, приведенный выше: http://sandrinodimattia.net/blog/post/Early-binding-tips-and-tricks-for-Dynamics-CRM-2011.aspx

Надеюсь, это поможет.

0 голосов
/ 21 февраля 2012

При запуске @jacobappleton я получил сообщение об ошибке «Недопустимое условие где». Элемент сущности вызывает недопустимое свойство или метод. "

Проблема, которую я не до конца понимаю, связана с этой строкой:

where c.EMailAddress1.Substring(c.EMailAddress1.IndexOf('@')) == email.Substring(email.IndexOf('@')

Хотя это и менее точно, я поменял это на следующее. Определение домена перед запросом.

where c.EMailAddress1.Contains(domain)

Конечный результат:

public Account GetAccount(string email)
{
    var context = new ServiceContext(_service);
    var domain = email.Substring(email.IndexOf('@'));
    var contacts = from c in context.ContactSet
                   where c.EMailAddress1.Contains(domain)
                   where c.StateCode == ContactState.Active
                   where c.ParentCustomerId != null
                   select c;

    return RetrieveEntity(Account.EntityLogicalName, contacts.First<Contact>().ParentCustomerId.Id, new ColumnSet(true)).ToEntity<Account>();
}

Связано, как проверить количество возвращенных записей. contacts.Any () не поддерживается?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...