Я отправляю запрос для некоторого сервиса и возвращаю результат. Я хочу знать, получил ли я в прошлом тот же «ответ». Итак, я планирую использовать Azure Table в качестве механизма кэширования.Таблица хранения Azure - Вставьте пакет строки и проверьте, существуют ли они
я сделать эти небольшие ДОУ:
TableBatchOperation batchOperation = new TableBatchOperation();
CachedUrl customer1 = new CachedUrl(Guid.Empty, "test1");
CachedUrl customer2 = new CachedUrl(Guid.Empty, "test2");
batchOperation.Insert(customer1);
batchOperation.Insert(customer2);
table.ExecuteBatch(batchOperation);
Когда я запускаю этот код в первый раз, он работает нормально. В конце этого, у меня есть 2 строки в таблице.
Проблема во втором запуске. Когда я выполняю этот код:
TableBatchOperation batchOperation = new TableBatchOperation();
CachedUrl customer1 = new CachedUrl(Guid.Empty, "test1");
CachedUrl customer2 = new CachedUrl(Guid.Empty, "test2");
CachedUrl customer3 = new CachedUrl(Guid.Empty, "test3");
batchOperation.Insert(customer1);
batchOperation.Insert(customer2);
batchOperation.Insert(customer3);
table.ExecuteBatch(batchOperation);
(Примечание к оных из customer3
)
Что я ожидал получить это сообщение, говорят:
- customer1 - существует
- покупатель2 - есть
- customer3 - добавил
То, что я на самом деле получаю это исключение (по методу ExecuteBatch()
):
Запрос информации RequestID: 5116ee8a-0002-0024-7ac1-415787000000 RequestDate: Пт, 18 ноя 2016 17:33:08 GMT StatusMessage: 0: Объект уже существует. ErrorCode: EntityAlreadyExists
Сервер обнаружил, что объект №1 существует, поэтому пропустите всю задачу.
Как я могу получить ожидаемый ответ?
Наивное решение состоит в том, чтобы попробовать добавить все N элементов, один за другим. Но это решение является самым медленным (N HTTP-запросов вместо 1 запроса).
Как с помощью 'InsertOrReplace' может решить мою проблему? Таким образом, я не могу знать после выполнения команды, если этот элемент был добавлен или просто заменен ... – No1Lives4Ever
Я не верю, что есть способ узнать, были ли сущности заменены или просто были добавлены. Возможно, хранение таблиц не очень подходит для того, что вы пытаетесь сделать. Рассматривали ли вы другие варианты? –