首先,这只是一个简单的功能,至少支持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
)。
我渴望达到第一个要求,即使第二个要求是不可能的。至少我们需要一些变通的办法。
1条答案
按热度按时间3pvhb19x1#
试试这个