Какой способ запросить надежную коллекцию (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?
Кто-нибудь может помочь!!!!
Спасибо за ваш ответ:)