如何从保留“默认”约束值的数据库创建模型

时间:2013-02-02 17:25:19

标签: asp.net-mvc

我现有的表包含近50列,其中大多数都有'默认'约束。

我已根据此数据库表创建了模型。一切似乎都没问题,直到我试图插入一个新行。我有一个SQL服务器错误,说明某些列不能为空。似乎从数据库创建模型不会保留默认约束。

我手动编辑了模型,添加了所有默认值,插入后没有失败。

所以我的问题是,如何创建一个自动获取与列相关的默认约束的模型?

使用mvc4,visual studio 2010,sql server 2008 r2。

Google搜索没有意义,因为所有人似乎都在谈论与我需要的不同的东西。

2 个答案:

答案 0 :(得分:1)

非常确定Possible to default DateTime field to GETDATE() with Entity Framework Migrations?的答案也适合你。通过使用修改后的MigrationCodeGenerator类并遍历操作列表,您可以更新列并根据所需的规则添加DefaultValueSql值。

答案 1 :(得分:0)

嗯,你有很多选择。您可以在Model的默认构造函数中设置默认值。我认为这是更好的解决方案。

如果您的数据库中必须有默认约束,则可以在数据迁移中设置defaultValueSql,如下所示:

AddColumn("ExistingTable", "NewColumn",c => c.Int(nullable: false, defaultValueSql: "0"));