【问题标题】:Default Value set but Field not Being Updated默认值已设置但字段未更新
【发布时间】:2012-02-17 11:39:30
【问题描述】:

刚刚在我的 SQL Server 2008 表中的位字段中添加了一个默认值 0。插入不默认为 0,它仍然在原地放置 NULL...不知道为什么。

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

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

【问题讨论】:

  • 你的INSERT声明是什么样的?

标签: sql-server-2008 entity-framework-4


【解决方案1】:

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

希望这会有所帮助。

【讨论】:

  • 太棒了,是的,我不得不手动更新愚蠢的 EF 以使其与数据库更改相匹配。同性恋。这是什么ORM?
【解决方案2】:

EF 模型中的 IsDeleted 属性可以为空?

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

请尝试关注...

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

【讨论】:

  • 删除在数据库中不再可以为空,我刷新了 EF 模型......仍然是同样的问题。不过谢谢你的建议。
猜你喜欢
  • 1970-01-01
  • 2018-08-06
  • 1970-01-01
  • 2019-01-30
  • 2020-03-08
  • 2020-12-23
  • 2015-06-21
  • 2019-12-24
  • 2014-05-29
相关资源
最近更新 更多