Итак, я обновился до MySql.Data 8.0.13
и заметил, что мои поля TIMESTAMP
имеют вид DateTimeKind.Local
, а поля DATETIME
читаются как DateTimeKind.Unspecified
Я думал, что «Метка времени» будетотличный семантический тип для представления поля «CreatedTime», поэтому я пошел с ним.
Дело в том, что я обычно пишу эти даты «вручную» в запросах на вставку, они генерируются приложением, вUTC, чтобы убедиться, что местное время и их сумасшедшие часовые пояса / летнее время ничего не сломят.Я не использую обновления или вставки на них.И теперь у меня возникают проблемы с сериализатором JSON приложения, который снова преобразует уже UTC в UTC, что приводит к неправильному времени смещения.
Итак, мой вопрос:
Есть ли способ принудительного примененияMySQL.Data для "Рассмотреть эти даты / метки времени как UTC"?Или мне лучше прекратить использование TIMESTAMP
и придерживаться DATETIME
?Или я должен вытащить такой сумасшедший трюк, как этот?
if(databaseValue is DateTime dt) {
databaseValue = new DateTime(dt.Ticks, DateTimeKind.UTC);
}
Какой способ решения этой проблемы предпочтительнее?