Конвертировать поле String в поле DateTime в хранилище таблицы Azure

StackOverflow https://stackoverflow.com/questions/4634576

  •  08-10-2019
  •  | 
  •  

Вопрос

У меня есть поле в таблице Azure, которая содержит время даты в формате String. Я хочу заменить это с помощью поля DateTime и преобразовывать значения в колонке строки. Какой лучший способ подойти к этому?

В SQL я сделаю это, создав новый столбец и запустите оператор обновления ...

Это было полезно?

Решение

Я не пробовал это сам, но вот шаги, которые / должны / работать. Это должно быть сценарий C # / VB / ETC.

  1. Измените определение класса, чтобы содержать / новый / член типа DateTime.
  2. Запустите запрос LINQ, чтобы загрузить все строки из таблицы и запустите A для LOOP, которая заполнит новую переменную DateTime на основе старой строковой переменной.
  3. Сохраните объекты к таблице. // Теперь ваше табличное хранение содержит объекты с новым и старым определением этой переменной
  4. Удалите старое поле из определения класса
  5. Загрузите объекты из таблицы снова и сохраните их, не делая ничего, кроме как разметки их грязными. Это / следует / избавиться от старого члена из сериализованных структур внутри таблицы. Теперь, если вы хотите, чтобы в поле «New DateTime» необходимо сделать имя исходной строковой переменной, сделайте шаги 1 по 5, на этот раз на этот раз перемещая данные из одного поля в другое. Единственное отличие состоит в том, что вам не нужно делать преобразование снова.

В общем, это полная лавана и один из банков объектных баз данных и служб хранения.

Другие советы

Клиент хранения Azure Static в родом понимает DateTime (но не DateTimeOffset), поэтому вы можете поделиться, чтобы SDK позаботиться об этом для вас.

В противном случае лучшим способом представления DATETIMES в качестве строк - явное хранить и извлечь их как значения UTC, написанные и анализируются с использованием формата «U», например,

var dateAsString = myDateTime.ToString("u");

Я понятия не имею, если это будет работать, но вы могли бы попробовать «Блаженное невежество»:

Реальный магазин столового магазина на самом деле не заботится о форме ваших объектов (ткань Dev может быть разной). Измените свой свойство Entity в DateTime, но в тесте сеттера Значение - это dateTime, если не разобрать значение в DT. Что-то типа

private DateTime myDT
public DateTime MyDT
{
    get
    {
        return myDT;
    }
    set
    {
       DateTime = null;
       if(value is DateTime)
       {
           myDT = value;
       }
       else
       {
           myDT = DateTime.Parse(value);
       }
    }

}

Надеюсь, со временем или явно в пакете, если вы просто загружаете объекты и сохраняете их снова, это установит их все в DateTime.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top