Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Azure表服务上下文撤消更改_Windows_Azure Storage - Fatal编程技术网

Windows Azure表服务上下文撤消更改

Windows Azure表服务上下文撤消更改,windows,azure-storage,Windows,Azure Storage,尝试使用行键中的非法字符(例如“/”)保存对象时,调用 _tableServiceContext.AddObject(tableName, myEntity); 我得到一个System.Data.Services.Client.DataServiceRequestException,其信息为“超出范围”,这很容易防止(通过防止或检查非法字符) 我现在的问题是,我如何从这种状态中恢复?在这样一个错误之后,所有后续的AddObject调用都会失败,可能是因为“损坏的对象”仍然属于上下文 因此,我正

尝试使用行键中的非法字符(例如“/”)保存对象时,调用

_tableServiceContext.AddObject(tableName, myEntity);
我得到一个System.Data.Services.Client.DataServiceRequestException,其信息为“超出范围”,这很容易防止(通过防止或检查非法字符)

我现在的问题是,我如何从这种状态中恢复?在这样一个错误之后,所有后续的AddObject调用都会失败,可能是因为“损坏的对象”仍然属于上下文

因此,我正在寻找一种“撤销变更”的可能性

任何提示都将不胜感激,谢谢

附言:
我正在寻找一种比丢弃上下文或从上下文中删除对象更好的方法…

最好的方法可能是从上下文中分离实体。如果出于某种原因这不是一个选项,您可以使用
SaveChangesOption.ContinueOnErrors
set重试保存。例如

_tableServiceContext.SaveChangesWithRetries(SaveChangesOptions.ContinueOnError);

这基本上是一次应用一个更新,而不是成批应用所有更新。注意,它将忽略所有发生的错误,而不仅仅是来自非法实体的错误

将实体从上下文中分离就是完成了我所需要的,谢谢你的快速帮助。哦,那就好了。我认为这不是一个选项,因为您不想“从上下文中删除对象”。