Azure Table Storageを入力バインディングとして使用し、複数のエンティティを取得しようとするAzure関数を作成するとMicrosoft.Azure.WebJobs.Host.Tables.TableExtension + TableToIQueryableConverter`1 [TElement] 'がタイプ' TElement 'の制約に違反しています
Error:
Function ($ScheduleTrigger) Error: Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.myTimerTrigger'. Microsoft.Azure.WebJobs.Host: GenericArguments[0], 'Submission#0+Task', on Microsoft.Azure.WebJobs.Host.Tables.TableExtension+TableToIQueryableConverter`1[ TElement]' violates the constraint of type 'TElement'. mscorlib: GenericArguments[0], 'Submission#0+Task', on 'Microsoft.Azure.WebJobs.Host.Tables.TableExtension+TableToIQueryableConverter`1 [TElement]' violates the constraint of type parameter 'TElement'.
Session Id: f4a00564b4864fb3a131557dd45924c7
Timestamp: 2017-09-05T07:48:09.738Z
私は、この場合には、次のようにC#のタイマートリガーがあるために使用コード:
using System;
public class Task
{
public string PartitionKey { get; set; }
public string RowKey { get; set; }
public DateTime Timestamp { get; set; }
public string Name { get; set; }
}
public static async Task Run(TimerInfo myTimer, IQueryable<Task> inputTable, TraceWriter log)
{
foreach (var task in inputTable) {
log.Info($"Processing task '{task.Name}' at: {DateTime.Now}");
}
log.Info($"Timer trigger executed at: {DateTime.Now}");
}
おそらく 'IQueryable TEntity:TableEntity'のようなものがコード内にあります。エンティティタイプが制約を満たしていないため、エラーメッセージが表示されます。 –
juunas
TableEntityクラスに「タスク」という名前を付けることを意味しましたか?これは組み込みのSystem.Threading.Taskと競合します。 –
@ mike-sという名前の付け方は貧弱でした。実際のコードでは名前が変更されています。いい意味で、誰も誤ってコピーしないようにここでも変更します。 –