Azure easytable UpdateAsync不起作用,但是InsertAsync是

时间:2018-09-24 10:23:47

标签: azure azure-web-sites

我在Azure App Services的Azure简易表中有一个订单列表。

当我想更改列表中的对象时,可以在应用程序中更改它们,然后尝试调用:await CloudOrders.UpdateAsync(obj);

但是这会引发异常“无效的列名'Parm8MinMax4'”

奇怪的是,我可以删除该对象,然后使用以下代码再次将其插入,并且不会引发异常。

 await CloudOrders.DeleteAsync(obj);
 obj.Id = Guid.NewGuid().ToString();
 await CloudOrders.InsertAsync(obj);

这个方法我不喜欢它,因为我冒着删除订单的风险,然后再次插入时出了点问题。

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

发出插入请求时,必须在传递给Azure Mobile Apps实例的数据中不能指定ID 。如果插入请求中包含ID,则会抛出MobileServiceInvalidOperationException

发出 update 请求时,必须指定 ID ,以便Azure Mobile Apps实例可以标识要更新的数据。此ID值存储在obj.ID属性中。如果更新请求不包含ID,则Azure Mobile Apps实例无法确定要更新的数据,因此将抛出MobileServiceInvalidOperationException

有关更多详细信息,您可以参考此article