0

我正在尝试使用以下代码将注释实体保存在 CRM 2011 中:

var annotationContext = new CrmOrganizationServiceContext(crmOrganizationService);
var annotation = annotationContext.CreateEntity("annotation");
annotationContext.AddObject(annotation);
// Setting the account id.
entity.SetAttributeValue<EntityReference>("objectid", "account", "Guid of the account");    
entity.iCrmSetPropertyValue(AnnotationDefinition.ColumnsName.DocumentBody,Convert.ToBase64String(new UnicodeEncoding().GetBytes("Sample Annotation Text")));
entity.iCrmSetPropertyValue("isdocument",true);
entity.iCrmSetPropertyValue(AnnotationDefinition.ColumnsName.Mime, "text/plain");
entity.iCrmSetPickListValue(AnnotationDefinition.ColumnsName.ObjectType, 1);
entity.iCrmSetPropertyValue(AnnotationDefinition.ColumnsName.Subject, "CompanyLogo");
annotationContext.SaveChanges();

保存更改方法失败,在 crm 服务器的事件查看器中出现以下错误:

OrganizationId 中的 Web 服务插件失败:###########;SdkMessageProcessingStepId: #####; EntityName:注解;阶段:30;消息名称:创建;程序集名称:Microsoft.Crm.Extensibility.InternalOperationPlugin,Microsoft.Crm.ObjectModel,版本=5.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35;类名:Microsoft.Crm.Extensibility.InternalOperationPlugin;异常:未处理的异常:System.InvalidCastException:指定的转换无效。在 Microsoft.Crm.BusinessEntities.EntityNameReferenceAttributeConverter.ConvertToBusinessEntity(对象值,AttributeMetadata attributeMetadata,Dictionary`2 abbrvToChildAttributeMetadata,ICrmConversionContext 上下文,BusinessEntity 目标)在 Microsoft.Crm.BusinessEntities.EntityToBusinessEntityConverter。

4

1 回答 1

0

您将annotation变量添加到上下文中,但更新了实体对象。

于 2013-04-22T15:07:54.457 回答