【问题标题】:Microsoft Dynamics CRM set field value of related entityMicrosoft Dynamics CRM 设置相关实体​​的字段值
【发布时间】:2017-03-07 22:49:19
【问题描述】:

我正在使用 Microsoft Dynamics CRM Online。

我有一个工作插件,它从一个名为(让我们简化一下)“entity1”的实体的创建消息(操作后)开始。这个插件的特点之一是它确定了一个值。我们称其为“重要价值”。该插件还创建了“entity1”和另一个实体(让我们再次简化)“entity2”之间的关系,并在“entity1”中填充了相应的查找字段。

所有这些都运行良好。但是,我还希望插件将“entity2”(称为“samplefield”)的字段设置为“importantValue”的值。我知道如何检索 entity2 的相关记录的 GUID,但我无法让插件更新此(已经存在的)记录。

这是代码制作问题的一部分。我已经检索了 GUID“entity2Guid”并填充了重要值(它是一个字符串)。我的 IOrganizationService 被称为“服务”。

 Entity entity2 = new Entity("new_entity2");
 entity2.Id = new Guid (entity2Guid);
 entity2["new_samplefield"] = importantValue;
 service.Update(entity2);

我做错了什么?提前致谢!

【问题讨论】:

  • 你得到了什么异常?

标签: c# entity-framework plugins dynamics-crm dynamics-crm-online


【解决方案1】:

我认为,如果您要更新自定义字段,则必须将字段名称添加到实体属性集合中。尝试以这种方式更新实体:

if (entity2.Attributes.ContainsKey("new_samplefield"))
    entity2["new_samplefield"] = importantValue;
else
    entity2.Attributes.Add("new_samplefield", importantValue);

如果你知道这个属性永远不会包含在属性集合中,你可以跳过 if 语句并始终添加它。

【讨论】:

  • entity2["new_samplefield"] = importantValue 是一种非常有效的赋值方式。当该属性尚未包含在集合中时,它将自动添加。
猜你喜欢
  • 1970-01-01
  • 2021-07-17
  • 1970-01-01
  • 1970-01-01
  • 2018-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多