在 Azure EventHubTrigger Function 应用程序中设置列
Set columns in Azure EventHubTrigger Function app
我想根据我发送到 IoT 中心的一些变量设置 Azure Table 的前两列(PartitionKey 和 RowKey),但我不确定我的熟悉程度如何用C#。我当前的代码如下:
#r "Microsoft.WindowsAzure.Storage"
using System;
using Microsoft.WindowsAzure.Storage.Table;
public static void Run(DataPoint myIoTHubMessage, out DataPoint outputTable, TraceWriter log)
{
log.Info($"C# IoT Hub trigger function processed a message: {myIoTHubMessage}");
myIoTHubMessage.PartitionKey = DateTime.Now.ToString("dd-MM-yyyy");
myIoTHubMessage.RowKey = DateTime.Now.ToString("HH:mm:ss");
outputTable = myIoTHubMessage;
}
public class DataPoint : TableEntity
{
public string cameraName { get; set; }
public string dateTime { get; set; }
public double Area { get; set; }
}
在这里我设法将这些行设置为当前日期和时间,但我的意愿是将它们设置为收到的其他变量,例如 cameraName
和 dateTime
,而不复制它们(我设法用以下两行做到了,但这只是复制了列):
myIoTHubMessage.PartitionKey = myIoTHubMessage.cameraName;
myIoTHubMessage.RowKey = myIoTHubMessage.dateTime;
有没有办法只将 3 个变量作为列?
我不确定我是否理解正确,但您希望输出具有 3 个属性:
PartitionKey、RowKey 和 Area?
如果是,则尝试为输出定义新的class并将其用于return数据:
public static void Run(DataPoint myIoTHubMessage, out OutPutData outputTable, TraceWriter log)
{
log.Info($"C# IoT Hub trigger function processed a message: {myIoTHubMessage}");
outputTable = new OutPutData
{
PartitionKey = myIoTHubMessage.cameraName,
RowKey = myIoTHubMessage.dateTime,
Area = myIoTHubMessage.area
};
}
public class DataPoint : TableEntity
{
public string cameraName { get; set; }
public string dateTime { get; set; }
public double Area { get; set; }
}
public class OutPutData : TableEntity
{
public double Area { get; set; }
}
我想根据我发送到 IoT 中心的一些变量设置 Azure Table 的前两列(PartitionKey 和 RowKey),但我不确定我的熟悉程度如何用C#。我当前的代码如下:
#r "Microsoft.WindowsAzure.Storage"
using System;
using Microsoft.WindowsAzure.Storage.Table;
public static void Run(DataPoint myIoTHubMessage, out DataPoint outputTable, TraceWriter log)
{
log.Info($"C# IoT Hub trigger function processed a message: {myIoTHubMessage}");
myIoTHubMessage.PartitionKey = DateTime.Now.ToString("dd-MM-yyyy");
myIoTHubMessage.RowKey = DateTime.Now.ToString("HH:mm:ss");
outputTable = myIoTHubMessage;
}
public class DataPoint : TableEntity
{
public string cameraName { get; set; }
public string dateTime { get; set; }
public double Area { get; set; }
}
在这里我设法将这些行设置为当前日期和时间,但我的意愿是将它们设置为收到的其他变量,例如 cameraName
和 dateTime
,而不复制它们(我设法用以下两行做到了,但这只是复制了列):
myIoTHubMessage.PartitionKey = myIoTHubMessage.cameraName;
myIoTHubMessage.RowKey = myIoTHubMessage.dateTime;
有没有办法只将 3 个变量作为列?
我不确定我是否理解正确,但您希望输出具有 3 个属性: PartitionKey、RowKey 和 Area?
如果是,则尝试为输出定义新的class并将其用于return数据:
public static void Run(DataPoint myIoTHubMessage, out OutPutData outputTable, TraceWriter log)
{
log.Info($"C# IoT Hub trigger function processed a message: {myIoTHubMessage}");
outputTable = new OutPutData
{
PartitionKey = myIoTHubMessage.cameraName,
RowKey = myIoTHubMessage.dateTime,
Area = myIoTHubMessage.area
};
}
public class DataPoint : TableEntity
{
public string cameraName { get; set; }
public string dateTime { get; set; }
public double Area { get; set; }
}
public class OutPutData : TableEntity
{
public double Area { get; set; }
}