我正在使用 Windows Azure 表存储并且有一个简单的要求:添加一个新行,用该 PartitionKey/RowKey 覆盖任何现有行。但是,保存更改总是会引发异常,即使我传入 ReplaceOnUpdate 选项:
tableServiceContext.AddObject(TableName, entity);
tableServiceContext.SaveChangesWithRetries(SaveChangesOptions.ReplaceOnUpdate);
如果实体已经存在,则会抛出:
System.Data.Services.Client.DataServiceRequestException: An error occurred while processing this request. ---> System.Data.Services.Client.DataServiceClientException: <?xml version="1.0" encoding="utf-8" standalone="yes"?>
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<code>EntityAlreadyExists</code>
<message xml:lang="en-AU">The specified entity already exists.</message>
</error>
我真的必须先手动查询现有行并调用DeleteObject
它吗?这似乎很慢。肯定有更好的方法吗?