我想创建一个DateTime字段,以便它一旦到达数据库就会有一个默认的GETDATE().所以我这样做了:
public class Specialty { [DatabaseGenerated(DatabaseGeneratedOption.Computed)] public DateTime? CreatedDate { get; set; } // other properties not shown for brevity. }
所以我在PM>中运行了Add-Migration.安慰.在Up函数中导致了这一点(并未显示所有行):
AddColumn("dbo.Specialty","CreatedDate",c => c.DateTime());
我明白c.DateTime(…)的可空是默认为真,所以我明白为什么没有指定.但是defaultValuesql在哪里:“GETDATE()”?
我知道我可以手动把它,但这似乎打败了Add-Migration的目的,并使[DatabaseGenerated(DatabaseGeneratedOption.Computed)]无用.我知道defaultValuesql的默认值不是“GETDATE()”,因为当我查看sql Management Studio中的列属性时它不会显示.
少了什么东西?名称“CreatedDate”是否违反了EF惯例?除了System.ComponentModel.DataAnnotations.Schema之外,我还应该引用另一个库吗?