CRM 2011 ActivityPointer Ранее связанный тип создан неправильно? - PullRequest
0 голосов
/ 26 октября 2011

Я пытался запустить этот запрос в CRM 2011:

var activity = (from a in crmService.ActivityPointerSet
                where a.StateCode == ActivityPointerState.Open &&
                      a.ActivityTypeCode == "4201"
                select a).First();

Но я получил эту ошибку:

Microsoft.Crm.Metadata.EntityMetadataNotFoundException: The entity with a name = '4201' was not found in the MetadataCache

После проверки в представлении базы данных FilteredActivityPointer я заметил, что этот столбец определен как int, а не как строка. Я вручную отредактировал сгенерированный класс, изменив в свойстве строку на int, и она работала просто отлично.

Есть ли ошибка в генераторе раннего связанного типа (CrmSvcUtil.exe) или я каким-то образом создал его неправильно?

РЕДАКТИРОВАТЬ: После еще одного тестирования, похоже, что ActivityTypeCode ожидает строку "назначение". Не знаю, почему он показывает по-другому в базе данных, хотя ...

1 Ответ

2 голосов
/ 27 октября 2011

Я полагаю, что они сделали это, поскольку ObjectTypeCodes не гарантируется, что они будут одинаковыми в разных развертываниях (если у вас их несколько).

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

Я согласен, что это немного странно!

...