Установка столбцов в приложении-функции Azure EventHubTrigger - PullRequest
0 голосов
/ 23 января 2019

Я хотел бы установить первые два столбца таблицы Azure (PartitionKey и RowKey) на основе некоторых переменных, которые я отправляю в IoT Hub, но я не уверен, как, учитывая мое слабое знакомство с 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 переменные в виде столбцов?

1 Ответ

0 голосов
/ 23 января 2019

Я не уверен, правильно ли я вас понял, но вы хотите получить вывод с 3 свойствами: PartitionKey, RowKey и Area?

Если да, попробуйте определить новый класс для вывода и использовать его для возврата данных:

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; }
}
...