我正在创建一个实体的虚假实例beep
。它有一个类型picklist
为的必填字段pickaboo
。beep
首先我省略了它,但由于某些业务逻辑要求所有新创建的实例都分配该字段,因此应用程序开始抱怨向我抛出错误消息。
Entity entity = new Entity { LogicalName = "beep" };
Guid guid = proxy.Create(entity);
proxy.Delete("beep", guid);
我没有给出啮齿动物的尾巴部分关于这个需求,因为在我创建实例之后,我正在删除它。然而,CRM 提供了一个巨大的啮齿动物,并没有让我发挥我的魔力。所以,我很聪明,为缺失的属性添加了一个属性。
OptionSetValue option = new OptionSetValue(0);
Entity entity = new Entity { LogicalName = "beep" };
entity.Attributes.Add("pickaboo", option);
Guid guid = proxy.Create(entity);
proxy.Delete("beep", guid);
当然,它不起作用,因为零不是有效值。显然,CRM 根据解决方案添加了一个哈希数,因此实际的“零”具有像“846000000000”这样的数值,实际的“一”具有“846000000001”等。
如何以编程方式获得该值?
现在我有一个丑陋的解决方法来获取所有的beep
s并从它们中的第一个中获取价值。甚至不要让我开始知道我失去了多少睡眠,知道它看起来多么尴尬,有人会花时间给我一些反馈。:(