c# – EF 7为DateTime列设置初始默认值
发布时间:2020-12-15 18:34:10  所属栏目:百科  来源:网络整理 
            导读:我需要能够设置DateTime列的初始值. 当我指定“getutcdate()或DateTime.UtcNow时 entity.Property(e = e.ShipDate).DefaultValue("getutcdate()")entity.Property(e = e.ShipDate).DefaultValue(DateTime.UtcNow) 然后运行dnx. ef migration add InitialMigr
                
                
                
            | 
                         我需要能够设置DateTime列的初始值. 
  
  
当我指定“getutcdate()或DateTime.UtcNow时 entity.Property(e => e.ShipDate).DefaultValue("getutcdate()")
entity.Property(e => e.ShipDate).DefaultValue(DateTime.UtcNow) 
 然后运行dnx. ef migration add InitialMigration EF使用以下命令生成迁移快照: b.Property<DateTime?>("ShipDate")
  .Required()
  .Annotation("Relational:ColumnDefaultValue","getutcdate()")
  .Annotation("Relational:ColumnDefaultValueType","System.String"); 
 当我使用DateTime.UtcNow … b.Property<DateTime?>("ShipDate")
  .Annotation("Relational:ColumnDefaultValue","635754129448768827")
  .Annotation("Relational:ColumnDefaultValueType","System.DateTime"); 
 和初始迁移: ShipDate = table.Column( type: "datetime2",nullable: false,defaultValue: "getutcdate()"), 当我使用DateTime.UtcNow … ShipDate = table.Column( type: "datetime2",nullable: true,defaultValue: new DateTime(2015,8,17,12,55,44,876,DateTimeKind.Unspecified)), 看起来它必须工作,但是当我将数据插入表中时,列的默认值是创建时间戳的“即时”. 我错过了什么吗? 另外,既然如此,如何在EF7中指定IDENTITY SEED? 谢谢 UPDATE 如果使用“getutcdate()”: [ShipDate] datetime2 DEFAULT 'getutcdate()', 由于引号不起作用 或者如果使用DateTime.utcNow: [ShipDate] datetime2 DEFAULT '2015-08-17 12:55:44.8760000' 这解释了我得到的静态价值. 我想我可以用这个来管理. 解决方法
 您想要设置默认值SQL,而不是常量值: 
  
  
  
        entity.Property(e => e.ShipDate).HasDefaultValueSql("getutcdate()");
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
