Я обновил свой компьютер для разработки до Windows 10 и попытался добавить новое свойство Required DateTime в класс. Я создал миграцию с помощью Add-Migration, и была сгенерирована разумная миграция:
{
migrationBuilder.AddColumn<DateTime>(
name: "AskingTime",
table: "Questions",
nullable: false,
defaultValue: new DateTime(2000, 1, 1, 15, 0, 0, 0, DateTimeKind.Unspecified));
}
Я пытался применить его с помощью Script-Migration, но он не работает с этой ошибкой:
ALTER TABLE "Questions" ADD "AskingTime" timestamp without time zone NOT NULL DEFAULT TIMESTAMP '2000-01-01 15.00.00';
Npgsql.PostgresException (0x80004005): 22007: invalid input syntax for type timestamp: "2000-01-01 15.00.00"
Мы попробовали это на моей коллеге, на которой все еще установлена Windows 7, и она работает, как и ожидалось, без ошибок. Проблема заключалась в том, что финская локализация в Windows 10 указывает точку в качестве разделителя во временном поле. Я установил его на моей машине, переключившись на английскую (шведскую) локализацию времени, в которой используется двоеточие.
Итак, мой последний вопрос: можно ли заставить npgsql или EF Core правильно анализировать объекты даты и времени с точками в качестве разделителя времени?