You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Entity Framework Core将0自动替换为Null的问题解决求助

Entity Framework Core将0自动替换为Null的问题解决求助

各位好,我最近在使用Entity Framework Core时遇到了一个特别棘手的问题,折腾了好半天都没找到根因,想请大家帮忙支支招!

情况是这样的:当我给实体类的Uploaded属性传入"0",然后尝试保存到数据库时,总会抛出这个错误:

Cannot insert the value NULL into column 'Uploaded', table 'ClientDocumentRequest'; column does not allow nulls. INSERT fails.

但奇怪的是,如果我传入的是"1",保存操作就完全正常,一点问题都没有。

先跟大家说下我的配置情况:
我在EF Core的实体配置里是这么设置Uploaded属性的:

builder.Property(c => c.Uploaded).IsRequired().HasDefaultValue(0);

执行迁移的时候,生成的代码里也正确包含了默认值配置:

Uploaded = table.Column<int>(type: "int", nullable: false, defaultValue: 0)

但我后来用SQL查询数据库字段信息的时候,发现了不对劲:
我执行了这段SQL:

SELECT COLUMN_NAME, IS_NULLABLE, COLUMN_DEFAULT, DATA_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'ClientDocumentRequest' AND COLUMN_NAME = 'Uploaded'

查询结果里Column_Default居然是null,根本不是我配置的0!看起来我在EF里设置的默认值配置根本没同步到数据库?如果是这个原因导致的问题,那我该怎么确保配置能正确应用到数据库呢?

另外还有个诡异的现象:我直接用SQL语句往ClientDocumentRequest表里插数据,给Uploaded字段传0是能正常保存的,但通过EF Core传0就会被自动换成null?我完全搞不懂怎么才能让EF Core知道,我就是要传入0,别把它替换成null啊!

有没有遇到过类似问题的朋友?或者有大佬能指点一下我该怎么排查和解决这个问题吗?非常感谢大家的帮助!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 07:03:04