1

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

例如,我想将默认日期添加到日期列中,这样当在模型外部插入某些内容时,日期列不需要值。

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

有什么方法可以使用 Fluent API 或 Attributes 将默认值添加到带有 EF CodeFirst 的列中?

4

1 回答 1

0

是的,您需要将HasDatabaseGeneratedOption方法与Computed的 DatabaseGeneratedOption 一起使用

.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed)

唯一的限制是您无法从代码中更新值。

于 2012-04-14T04:37:46.597 回答