繁体   English   中英

怎么说日期时间 - EF Core 6.0 中没有时区的时间戳

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM