Oracle EF Core -如何配置要自动生成的日期时间列?

bxfogqkk  于 2023-05-16  发布在  Oracle
关注(0)|答案(1)|浏览(246)

首先,这只是一个简单的功能,至少支持EF Core for SQL Server,但对于Oracle(Oracle实现的提供程序),我不确定是否支持。
简单地说,我有一个像这样的实体类:

public class Item {
    public int Id {get;set;}
    public DateTime CreatedDateUtc {get;set;}
}

问题是如何配置EF核心每次插入时自动生成数据库的日期为CreatedDateUtc,而不必在客户端设置该值?
以下是我尝试过的:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
   modelBuilder.Entity<Item>()
               .Property(e => e.CreatedDateUtc)
               .ValueGeneratedOnAdd();                 
}

但是在运行add-migration之后,生成的类只是空的,如下所示:

protected override void Up(MigrationBuilder migrationBuilder)
{

}

protected override void Down(MigrationBuilder migrationBuilder)
{

}

因此,实际上它对该配置没有任何作用(不支持?)。第一件事是生成一个日期时间值,第二件重要的事情是生成一个***UTC***日期时间值。我相信第一个要求的可行性,而第二个似乎是不可行的,至少与Oracle EF核心?(核名称:Oracle.EntityFrameworkCore)。
我渴望达到第一个要求,即使第二个要求是不可能的。至少我们需要一些变通的办法。

3pvhb19x

3pvhb19x1#

试试这个

protected override void OnModelCreating(ModelBuilder modelBuilder)
   {
          modelBuilder.Entity<Item>()
               .Property(b => b.CreatedDateUtc)
               .HasDefaultValueSql("GETUTCDATE()");
    }

相关问题