我需要能够设置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?
谢谢
如果使用“getutcdate()”:
[ShipDate] datetime2 DEFAULT 'getutcdate()',
由于引号不起作用
或者如果使用DateTime.utcNow:
[ShipDate] datetime2 DEFAULT '2015-08-17 12:55:44.8760000'
这解释了我得到的静态价值.