有没有办法在EF Code First中指定数据库级别的默认值?

时间:2012-04-14 04:28:34

标签: sql-server ef-code-first

我需要EF CodeFirst创建的数据库支持默认值,以便在未提供值时可以将不可为空的值插入数据库。

例如,我想在日期列中添加一个默认日期,以便日期列在模型外部插入某些内容时不需要值。

我知道在使用模型更新时我可以使用代码中的默认值来控制它,但其原因主要是模型更新。我经常使用RedGate的SqlCompare来更新结构,但结构更新通常在非可空的非默认字段上失败,因为新列需要一些值来验证模式,因此列添加失败。默认值(和nullables)将允许这样做。 Nullables工作,但是在处理代码中的空值时会引入其他问题,除非模型需要它,否则我要避免使用它。

有没有办法使用Fluent API或属性来使用EF CodeFirst将默认值转换为列?

1 个答案:

答案 0 :(得分:0)

是的,您需要将HasDatabaseGeneratedOption方法与Computed

的DatabaseGeneratedOption一起使用
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed)

The only limitation is that you cannot update the values from code.