![](/img/trans.png)
[英].net postgres EF core Cannot write DateTime with Kind=Local to PostgreSQL type 'timestamp with time zone'
[英]How to say Datetime - timestamp without time zone in EF Core 6.0
我将 ASP.NET 核心项目从 3.1 迁移到 6.0。
我已复制旧迁移并将其粘贴到我们的新版本
EF Core 3.1(旧)上的迁移
migrationBuilder.AddColumn<DateTime>(
name: "CalendarStartDate",
table: "DealOverview",
nullable: false,
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
EF Core 6.0 中的迁移(新)
migrationBuilder.AlterColumn<DateTime>(
name: "StartDate",
table: "DealOverview",
type: "timestamp without time zone",
nullable: false,
oldClrType: typeof(DateTime),
oldType: "timestamp with time zone");
迁移失败,因为这条线
public DateTime StartDate { get; set; }
已经改变。
我想从这个 package :
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.1.4" />
对于这个 package:
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="6.0.1" />
EF Core 6 Npgsql 对时间戳处理逻辑进行了一些重大更改。 您可以通过将下一行添加到Startup
文件或Program
文件来尝试“恢复”回旧行为:
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.