私は 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
がありますか? それは非常に遅いようです。きっともっと良い方法がありますか?