Итак, согласно эта проблема на GitHub, поддержка IQueryable
была прекращена для v2 Функции Azure. Это также отражено в официальные документы. В этом документе также упоминается, что CloudTable
можно использовать для привязки к хранилищу таблиц, однако никакой конкретной информации или примеров не предоставляется. В минимальном рабочем примере, как будет выглядеть привязка хранилища таблиц для функции Azure версии 2 (например, для чтения всех строк таблицы из хранилища таблиц)? Любая помощь высоко ценится!
Привязка к хранилищу таблиц в функциях Azure версии 2 с помощью CloudTable
Ответы (1)
Должно быть так же просто, как
[FunctionName("TestFunction")]
public static async Task Run(
[QueueTrigger("test-queue")] string message,
[Table("testTable")] CloudTable testTable)
{
var querySegment = testTable.ExecuteQuerySegmentedAsync(new TableQuery<ResultEntity>(), null);
foreach (ResultEntity item in querySegment.Result)
{
// Access table storage items here
}
}
Полный рабочий пример доступен здесь.
person
Mikhail Shilkov
schedule
22.02.2018
Приветствую @Mikhail за быстрый ответ. Использование
ExecuteQuery
дает 'CloudTable' does not contain a definition for 'ExecuteQuery' and no extension method 'ExecuteQuery' accepting a first argument of type 'CloudTable' could be found (are you missing a using directive or an assembly reference?) [readCtab]
. Я включил using Microsoft.WindowsAzure.Storage.Table;
из пакета WindowsAzure.Storage
. Я пробовал с версией 8.6.0 и 9.0 безуспешно.
- person Mike Floyd; 22.02.2018
@MikeFloyd Я скопировал это из полного примера .NET framework. Я обновил образец, добавив
ExecuteQuerySegmentedAsync
, который я использовал в .NET Standard. Не могли бы вы попробовать это?
- person Mikhail Shilkov; 22.02.2018
ваш пример все еще требовал некоторой возни, но он определенно указал мне в правильном направлении. Теперь у меня есть рабочий пример, см. Мой ответ ниже. Полный пример здесь. Большое спасибо за ваши указатели!
- person Mike Floyd; 22.02.2018
@MikeFloyd Круто, добро пожаловать. Я думаю, вы могли бы просто расширить мой ответ, а не копировать его, но все, что вам подходит.
- person Mikhail Shilkov; 22.02.2018
Совершенно логично @Mikhail. Я удалил повторяющийся ответ и расширил ваш образец кода, чтобы он соответствовал рабочему образцу. Еще раз приветствую вашу быструю и своевременную помощь.
- person Mike Floyd; 22.02.2018
Мне не хватало атрибута Table, поскольку в моем проекте .NET Standard 2.0 были только эти пакеты Nuget: Microsoft.NET.Sdk.Functions 1.0.23 и NETStandard.Library 2.0.3. Покопавшись, я обнаружил, что этот атрибут находится в пакете Microsoft.Azure.WebJobs.Extensions.Storage 3.0.1, который мне пришлось включить.
- person Artemious; 23.10.2018
Просто примечание: это не работает с последними SDK. Вы получите сообщение об ошибке
Can't bind Table to type Microsoft.WindowsAzure.Storage.Table.CloudTable'.
- возможная причина: github.com/ Azure / azure-functions-host / issues / 3784
- person Krumelur; 15.07.2019
@Krumelur, смогли ли вы найти обходной путь?
- person Shakil78692; 09.01.2020