Есть ли планы по добавлению поддержки LINQ для надежных коллекций в Service Fabric? Кто-нибудь знает какие-либо расширения, которые могут включить это? Кажется, что это было возможно в предыдущей версии API, но не сейчас.
LINQ для запроса надежных коллекций Service Fabric?
Ответы (1)
В надежном словаре вы можете использовать CreateEnumerableAsync
для создания асинхронного перечисления. (Документация здесь.)
Затем вы можете создавать запросы linq, используя методы расширения Эли здесь.
Пример из сути:
var accounts = await (await accountNames.CreateLinqAsyncEnumerable(txn))
.Where(x => x.Value.IndexOf(name, StringComparison.InvariantCultureIgnoreCase) >= 0)
.SelectAsync(async x => new Account
{
Id = x.Key,
Name = x.Value,
Data = (await accountData.TryGetValueAsync(txn, x.Key)).Value
})
.ToList();
person
LoekD
schedule
31.03.2018
Какова производительность этого? Происходит ли перечисление только для подмножества данных, заполняющих диапазон, или все извлекается из памяти, а перечисление происходит для всей коллекции?
- person Mortana; 30.01.2019
Также хотелось бы узнать ответ на комментарий выше. У меня будут довольно большие коллекции, где мне нужно будет захватить только подмножество записей, если это вытянет всю коллекцию в память, это не пойдет.
- person Josh; 09.01.2020
Я считаю, что приведенный выше код в какой-то момент будет иметь каждое значение в памяти, но если значение не спроецировано, оно станет пригодным для выгрузки (снова). Этот код можно оптимизировать с помощью индексов и/или ключевых фильтров.
- person LoekD; 10.01.2020