升级我的项目到,net 6现在我有时区在EF核心与PostgreSQL

m3eecexj  于 2022-12-22  发布在  PostgreSQL
关注(0)|答案(1)|浏览(131)

我刚刚使用EFCore和NPGSQL(Postgres)将我的Web API升级到.net6。我必须设置一个开关才能让我的代码工作:第一个月
现在EFCore创建我的日期时间字段为 '时间戳与时区' 这打破了一切。
如何获取日期时间类型的旧 "没有时区的时间戳"
我应该删除旧版时间戳开关吗?
谢谢你的帮忙!

t3irkdon

t3irkdon1#

我通过在DBContext的OnModelCreating中添加以下代码,强制所有DateTime和DateTime?的列类型为“不带时区的时间戳”,从而修复了该问题。

foreach (var property in builder.Model.GetEntityTypes()
                 .SelectMany(t => t.GetProperties())
                 .Where
                 ( p
                   => p.ClrType == typeof(DateTime) 
                      || p.ClrType == typeof(DateTime?)
                 )
        )
{
  property.SetColumnType("timestamp without time zone");
}

感觉像是一个黑客,但它的工作。

相关问题