Так что на самом деле вам нужно сначала прочитать и принять решение о вставке или обновлении.
отаю с Windows Azure Table Storage и имею простое требование: добавить новую строку, перезаписав любую существующую строку этим 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
в теме? Это кажется очень медленным. Конечно, есть лучший способ?