Конвертировать поле String в поле DateTime в хранилище таблицы Azure
-
08-10-2019 - |
Вопрос
У меня есть поле в таблице Azure, которая содержит время даты в формате String. Я хочу заменить это с помощью поля DateTime и преобразовывать значения в колонке строки. Какой лучший способ подойти к этому?
В SQL я сделаю это, создав новый столбец и запустите оператор обновления ...
Решение
Я не пробовал это сам, но вот шаги, которые / должны / работать. Это должно быть сценарий C # / VB / ETC.
- Измените определение класса, чтобы содержать / новый / член типа DateTime.
- Запустите запрос LINQ, чтобы загрузить все строки из таблицы и запустите A для LOOP, которая заполнит новую переменную DateTime на основе старой строковой переменной.
- Сохраните объекты к таблице. // Теперь ваше табличное хранение содержит объекты с новым и старым определением этой переменной
- Удалите старое поле из определения класса
- Загрузите объекты из таблицы снова и сохраните их, не делая ничего, кроме как разметки их грязными. Это / следует / избавиться от старого члена из сериализованных структур внутри таблицы. Теперь, если вы хотите, чтобы в поле «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.