2017-02-13 17 views
0

Я пытаюсь создать запись адреса, но я продолжаю получать ошибку.MS CRM: Создать запись адреса записи Неверный атрибут Значение Тип Ошибка

The application terminated with an error. 
Code: -2147220989 
Message: Incorrect attribute value type System.Int32 

Код выглядит следующим образом

public const int OBJECT_TYPE_CONTACT = 2; 



int addressTypeCode = 3; //Primary Address 
if (i == 2) addressTypeCode = 1; //Billing Address 
if (i == 3) addressTypeCode = 2; //Shipping Address 

Entity newAddress = new Entity("customeraddress"); 
newAddress.Attributes["parentid"] = new EntityReference("contact", existingContact.Id); 
newAddress.Attributes["addresstypecode"] = addressTypeCode; 
newAddress.Attributes["objecttypecode"] = OBJECT_TYPE_CONTACT; 
newAddress.Attributes["line1"] = "temp1"; 
newAddress.Attributes["line2"] = "temp2"; 
newAddress.Attributes["line3"] = "temp3"; 
newAddress.Attributes["city"] = "temp3"; 
newAddress.Attributes["stateorprovince"] = "temp3"; 
newAddress.Attributes["postalcode"] = "temp3"; 
newAddress.Attributes["country"] = "temp3"; 

Guid id = service.Create(newAddress); 

Ошибка броски на линии, которая устанавливает objecttypecode. Я знаю, что код ошибки означает «Недопустимый аргумент». В решении 2 ссылается на контакт, поэтому я не вижу, в чем проблема.

+0

Ошибка на самом деле бросает строку 'Guid id = service.Create (newAddress);'. Эта ошибка никогда не будет бросаться на добавление/изменение элемента в коллекции 'Entity.Attributes', потому что класс' Entity' не знает о типах. Если вы используете ранние связанные типы (из 'CrmSvcUtil.exe'), которые дадут вам предупреждения типа. – Nicknow

ответ

1

Вы должны изменить эту строку:

newAddress.Attributes["addresstypecode"] = addressTypeCode;

To:

newAddress.Attributes["addresstypecode"] = new OptionSetValue(addressTypeCode);

Потому что это вариант установить тип должен быть OptionSetValue, не int.

+0

Спасибо, я должен был увидеть, что один –

 Смежные вопросы

  • Нет связанных вопросов^_^