При запуске @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 () не поддерживается?