【发布时间】:2014-05-01 18:02:36
【问题描述】:
我想创建一个 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(...) 的 nullable 默认情况下是 true,所以我理解为什么没有指定它。但是defaultValueSql: "GETDATE()"在哪里?
我知道我可以手动输入,但这似乎违背了Add-Migration 的目的,并使[DatabaseGenerated(DatabaseGeneratedOption.Computed)] 无用。我知道 defaultValueSql 的默认值不是“GETDATE()”,因为当我在 SQL Management Studio 中查看列属性时它没有显示出来。
缺少什么?那么,名称“CreatedDate”是否违反了 EF 约定?除了System.ComponentModel.DataAnnotations.Schema,还有其他我应该参考的库吗?
【问题讨论】:
标签: c# entity-framework datetime