CRM 2011 ActivityPointer Ранний тип сгенерирован неправильно?

#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 не гарантированно будут одинаковыми в разных развертываниях (если у вас их несколько).

При использовании «задача», «встреча» или «электронная почта» (и т.д.) нет никакой двусмысленности.

Я согласен, что это кажется немного странным!