Как известно, экземпляр Stack представляет коллекцию в порядке очереди (LIFO).
Stack<ChangeItem> ChangeItems = new Stack<ChangeItem>();
ChangeItems.Push(changeItem);
После сериализации в Cosmos DB элемент, поступивший последним, находится в позиции 0. Последовательность правильно.
Но проблема в том, что экземпляр извлекается обратно из БД.
response = await container.ReadItemAsync<T>(id, partitionKey);
Последовательность обратная. Это становится очередностью в порядке очереди. Затем добавьте новый элемент и сохраните его, последний элемент находится на первой позиции. В конечном итоге последовательность становится беспорядочной.
Например,
При первом сохранении экземпляра Stack последовательность будет [1, 2]
Затем при получении экземпляра обратно, последовательность становится [2, 1], добавляется новый элемент, последовательность равна [3, 1, 2]
Затем возвращается экземпляр, последовательность становится [2, 1, 3], добавляется новый элемент, последовательность это [4, 2, 1, 3]
... Последовательность беспорядка
Есть какие-нибудь настройки, чтобы избежать этой проблемы? Спасибо