Какой способ запросить надежную коллекцию (IReliableDictionary) в Service Fabric?

У нас есть сценарий, в котором надежный словарь содержит около 100000 записей, каждая запись содержит свойство bool, указывающее, активна она или неактивна. мне нужно получить только активную запись из коллекции.

Я использовал метод ниже

IReliableDictionary<string, AlertEntity> storeAlert = await this.stateManager.GetOrAddAsync<IReliableDictionary<string, AlertEntity>>(TargetSolution.Names.AlertsRegistryStore);
using (ITransaction tx = this.stateManager.CreateTransaction())
{
                IAsyncEnumerable<KeyValuePair<string, AlertEntity>> enumerable = await storeAlert.CreateEnumerableAsync(tx, EnumerationMode.Ordered);
                IAsyncEnumerator<KeyValuePair<string, AlertEntity>> enumerator = enumerable.GetAsyncEnumerator();
                while (await enumerator.MoveNextAsync(appLifetime.ApplicationStopping))
                {
                    if (enumerator.Current.Value.ISActive)
                    {
                        alerts.Add(enumerator.Current.Value);
                    }
                }
                await tx.CommitAsync();
}

Насколько я понимаю, приведенный выше код выполняет итерацию каждой записи, чтобы идентифицировать свойство IsActive как true, что, как мне кажется, занимает много времени.

Так есть ли способ оптимизировать этот код с помощью фильтра или запроса LINQ?

Кто-нибудь может помочь!!!!

Спасибо за ваш ответ:)

0 ответов

Другие вопросы по тегам