我试图更新Planner存储桶的订单。为此,我将该存储桶的orderHint
值设置为<prevBucketOrderHint> <nextBucketOrderHint>!
。这是我对bucket对象所做的唯一更改,但是,当我尝试保存更改时,出现以下错误:
Validation for field 'PlanId', on entity 'Bucket' has failed: This field is read only and cannot be changed
但是,我没有访问或修改PlanId
的价值,因此我不明白为什么会收到此错误。
下面你可以找到我用来完成任务的代码(请注意,这是使用SDK的C#代码,变量gc
是Microsoft.Graph.GraphServiceClient
的有效实例):
theBucket.OrderHint = string.Format("{0} {1}!", previousBucket.OrderHint, nextBucket.OrderHint);
var etag = theBucket.GetEtag();
var result = gc.Planner.Buckets[bucketId].Request().Header("If-Match", etag).UpdateAsync(theBucket).Result;
您是否认为我的方法有任何错误,或者您对如何更改规划师计划中的存储分区有任何建议?
由于
答案 0 :(得分:2)
我猜你有另一个电话的theBucket
对象。 API端点需要一个仅包含要更新的属性的修补程序对象。您将现有对象作为修补程序对象发送。现有对象theBucket
具有planId设置,该设置在服务处是只读的。
通过创建新的PlannerBucket并仅在其上设置OrderHint属性来修复它。在UpdateAsync方法中使用新的PlannerBucket。