我们希望将当前日期时间放入数据库列中。
我们有一个Web场,Web服务器上的时间可以变化,因此我们需要在数据库服务器上使用datetime。
我们有一个带有Not Nulldatetime列的数据库。此列的默认日期时间为当前时间。
Not Null
当我们使用不包含datetime列的SQL语句插入数据时,这种方法可以很好地工作。
从实体框架:
not null
null
如果插入值为低日期,我们可以使用数据库触发器将日期时间更改为当前日期时间来解决此问题。
有谁有更好的解决方案?
由于该列具有数据库设置的默认值,因此您可以简单地将datetime列标记为已计算:
[DatabaseGenerated(DatabaseGeneratedOption.Computed)] property DateTime Date { get; set; }
或流利的制图
this.Property(t => t.Date) .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);
在EntityTypeConfiguration课堂上,或
EntityTypeConfiguration
modelBuilder.Entity<MyClass>().Property(t => t.Date) .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);
在OnModelCreating覆盖。
OnModelCreating
这将导致EntityFramework在每次读取,插入或更新记录时读取该列的值,但是永远不会设置它。