Sql server 2008 已设置默认值,但未更新字段

Sql server 2008 已设置默认值,但未更新字段,sql-server-2008,entity-framework-4,Sql Server 2008,Entity Framework 4,刚刚在我的SQL Server 2008表中的“我的位”字段中添加了一个默认值0。Inserts并没有默认为0,它仍然在放置一个NULL,不知道为什么 ALTER TABLE [dbo].[Messages] ADD CONSTRAINT [DF_Cars_IsDeleted] DEFAULT ((0)) FOR [IsDeleted] 我们正在使用Entity Framework 4将新记录保存/插入到此表。只有在没有为列指定值时,默认值才起作用。如果insert语句为IsDele

刚刚在我的SQL Server 2008表中的“我的位”字段中添加了一个默认值0。Inserts并没有默认为0,它仍然在放置一个
NULL
,不知道为什么

ALTER TABLE [dbo].[Messages] 
  ADD  CONSTRAINT [DF_Cars_IsDeleted]  DEFAULT ((0)) FOR [IsDeleted]

我们正在使用Entity Framework 4将新记录保存/插入到此表。

只有在没有为列指定值时,默认值才起作用。如果insert语句为IsDeleted列提供空值,则将存储空值而不是默认值。如果是这种情况,您可以从insert语句中删除该列,或将其包装在
isnull()
中,默认值为0


希望这有帮助。

EF模型中的IsDeleted属性可为空

我相信您是从现有数据库生成实体模型对象的。IsDeleted是可空的列。我认为这就是为IsDeleted属性提供可为null的类型的原因

请试试下面的

  • 转到.edmx模型文件
  • 右键单击Messages.IsDeleted
  • 选择属性
  • 您将在“属性”面板上看到“默认值”
  • 将0作为默认值

您的
INSERT
语句是什么样子的?数据库中的delete不再为null,我刷新了EF模型…仍然是相同的问题。不过我会试试你的建议,谢谢。太棒了。是的,我不得不手动更新愚蠢的EF以使其与DB更改相匹配。同性恋者这是什么类型的ORM?