我正在為 Postgres v14 使用 EF Core v5 和 Npgsql EF Core provider v5。
我想CreatedAt和UpdatedAt計算列被自動設定。它們都是 型別DateTime。
我試過這個:
builder
.Property(x => x.CreatedAt)
.IsRequired()
.HasDefaultValueSql("timestamp with time zone");
builder
.Property(x => x.UpdatedAt)
.IsRequired()
.HasComputedColumnSql("timestamp with time zone", stored: true);
但是在創建表 ( Npgsql.PostgresException (0x80004005): 42601: syntax error at or near ")")時會拋出。
如果我洗掉上面的代碼,則一切正常,因此問題與該代碼無關。
我認為timestamp with time zoneUTC時間戳是正確的,但整體語法顯然是錯誤的。我如何解決它?
uj5u.com熱心網友回復:
timestamp with time zone是 Postgresql 型別名稱而不是值。帶時區的當前時間戳的值為current_timestampor now()。嘗試
.HasDefaultValueSql("now()");
uj5u.com熱心網友回復:
用這個:
.HasDefaultValueSql("CURRENT_TIMESTAMP");
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/352991.html
標籤:C# PostgreSQL 实体框架 实体框架核心 npgsql
上一篇:如何在PostgreSQL中“添加約束*indexname*unique((case...))”?
下一篇:表中的行重復
