【发布时间】:2018-06-29 05:43:00
【问题描述】:
我将我的开发机器更新到 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 正确解析以点作为时间分隔符的日期时间对象?
【问题讨论】:
-
问题仅与迁移有关吗?常规查询呢?
-
@Albert 我实际上意识到我有一个名为“PublishDate”的 DateTime 字段,它没有“Required”属性。即使使用芬兰本地化设置,该字段也可以正常工作。我可以使用 DateTime 字段创建和查询对象。
标签: .net asp.net-core entity-framework-core