System.Collections.Generic.KeyNotFoundException Dynamics CRM C # Ошибка поиска в поле C # - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь создать новую запись в Dynamics CRM, используя C #.

Ниже приведен код, который я использую:

 Entity Record = new Entity("new_edRecord");
 Record["new_year"] = "2100";
 Record["new_school"] = new EntityReference("new_school",new Guid("8ba53949-3947-e445-876c-001dd8b71c19"));
 Record["new_gradelevel"] = "100000018";
 organizationProxy.Create(Record);

При выполнении этого я получаю следующееошибка:

Неожиданное исключение из плагина (Выполнить): Department.EdRecord.RecordCreate: System.Collections.Generic.KeyNotFoundException: Указанный ключ отсутствует в словаре.

Я дважды проверил, существует ли школа с GUID, посетив следующий URL:

https://crm.site.com/orgname/api/data/v8.0/new_schools(8ba53949-3947-e445-876c-001dd8b71c19)

, и это принесло результат.Не уверен, что мне здесь не хватает.

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018

Если new_gradelevel является типом поля Optionset , следующий код должен быть следующим: -

Record["new_gradelevel"] = new OptionSetValue(100000018);

Также, вы можете подтвердить тип данных new_year is String .

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

0 голосов
/ 17 ноября 2018

Как и другие предложенные ответы, проверьте правильность всех имен полей / схем.

Вы можете выполнить метод проб и ошибок, закомментировав поля одно за другим и выполнив этот код, чтобы найти строку с ошибками.

Наконец, (это будет мой первый шаг по устранению неполадок) перекрестная проверкаесли у вас есть какие-либо другие плагины после создания объекта new_edrecord или ассоциированного объекта new_school.Этот синхронный плагин может выдать эту KeyNotFoundException ошибку, но всплыть здесь.

0 голосов
/ 14 ноября 2018

Общепринято называть поля поиска CRM именами сущностей с добавлением id.

Возможно ли, что Record["new_school"] должно быть Record["new_schoolid"]?

ИЛИ:

Возможно, значение 100000018 не существует в наборе параметров Record["new_gradelevel"].Возможно закомментируйте эту строку и посмотрите, что произойдет.

...