#dynamics-crm-2011
#динамика-crm-2011
Вопрос:
Я попытался запустить этот запрос в CRM 2011:
var activity = (from a in crmService.ActivityPointerSet
where a.StateCode == ActivityPointerState.Open amp;amp;
a.ActivityTypeCode == "4201"
select a).First();
Но я получил эту ошибку:
Microsoft.Crm.Metadata.EntityMetadataNotFoundException: The entity with a name = '4201' was not found in the MetadataCache
После проверки с помощью представления базы данных FilteredActivityPointer я заметил, что этот столбец был определен как int, а не как string . Я вручную отредактировал сгенерированный класс, изменив строку на int в свойстве, и это сработало просто отлично.
Есть ли ошибка в генераторе раннего привязанного типа (CrmSvcUtil.exe ), или я как-то неправильно его создал?
РЕДАКТИРОВАТЬ: после еще нескольких тестов похоже, что ActivityTypeCode ожидает строку «назначение». Не знаю, почему он отображается по-разному в базе данных…
Ответ №1:
Я бы предположил, что они сделали это, поскольку коды ObjectTypeCodes не гарантированно будут одинаковыми в разных развертываниях (если у вас их несколько).
При использовании «задача», «встреча» или «электронная почта» (и т.д.) нет никакой двусмысленности.
Я согласен, что это кажется немного странным!