Как применить операцию запроса только к первому объекту в таблице Azure?

#c# #azure #azure-table-storage

#c# #azure #azure-table-storage

Вопрос:

Я изо всех сил стараюсь упростить операцию запроса, просто запрашивая первую запись таблицы, чтобы проверить, является ли мой запрос действительным и не вызывает исключений.

Я видел много ответов на SO о получении верхних ‘n’ объектов. Мое требование здесь заключается в том, чтобы применить операцию запроса только к первому объекту, независимо от того, соответствует ли это фильтрам, указанным в запросе и прерывании.

Я пытался:

 TableQuery query = new TableQuery().Where("MyKey eq 'RawMaterial'").Take(1);
  

Но этот запрос выполняет полное сканирование таблицы, если нет подходящего объекта. Есть комментарии по этому поводу?

Комментарии:

1. Если вы ищете один, вам нужно просмотреть ВСЕ, если совпадений нет.

2. Вот в чем на самом деле заключается вопрос. Требование таково: «Выберите первый объект, извлеките, если он совпадает, иначе прервите!»

3. Запись в библиотеку будет прервана при достижении номера, а не при поиске по всему списку.

4. можете ли вы записать пример?

Ответ №1:

Вот пример кода :

             List<int> numbers = Enumerable.Range(0, 100000000).Select(x => x).ToList();

            DateTime startAll = DateTime.Now;
            List<int> none = numbers.Where(x => x == -1).Take(1).ToList();
            DateTime endAll = DateTime.Now;

            DateTime startOne = DateTime.Now;
            List<int> one = numbers.Where(x => x == 1).Take(1).ToList();
            DateTime endOne = DateTime.Now;

            Console.WriteLine("Time One : {0}, Time All {1}", endOne.Subtract(startOne).ToString(), endAll.Subtract(startAll).ToString());
            Console.ReadLine();
  

Комментарии:

1. Спасибо за ваш ответ. Мой вопрос не о списке. Речь идет о получении только первого объекта из хранилища таблиц Azure.

2. Что делает код, так это сравнивает время прохождения всего списка с чтением только одного значения. Если вы используете First(), всегда есть перечислимый список. Ваша таблица представляет собой перечислимый список.