我现有的表包含近50列,其中大多数都有'默认'约束。
我已根据此数据库表创建了模型。一切似乎都没问题,直到我试图插入一个新行。我有一个SQL服务器错误,说明某些列不能为空。似乎从数据库创建模型不会保留默认约束。
我手动编辑了模型,添加了所有默认值,插入后没有失败。
所以我的问题是,如何创建一个自动获取与列相关的默认约束的模型?
使用mvc4,visual studio 2010,sql server 2008 r2。
Google搜索没有意义,因为所有人似乎都在谈论与我需要的不同的东西。
答案 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"));