gpt4 book ai didi

c# - 我的 SQL 表设置为允许此列为 NULL,但是当我运行它时,它说它不能为 NULL。什么/为什么/如何?

转载 作者:行者123 更新时间:2023-11-30 14:10:24 24 4
gpt4 key购买 nike

所以我在这里遇到了很奇怪的困境。我的 SQL 表设置为允许我的 ZipCode 列为空值,如下所示:

CREATE TABLE [dbo].[Companies]
(
[CompanyId] BIGINT IDENTITY(1,1) NOT NULL PRIMARY KEY,
[Name] NVARCHAR(100) NOT NULL,
[Address] NVARCHAR (100) NULL,
[City] NVARCHAR (50) NOT NULL,
[State] NVARCHAR (2) NOT NULL,
[ZipCode] INT NULL,
[PhoneNum] BIGINT NULL,
[CreatedDate] DATETIME2 NOT NULL DEFAULT GetDate()
)

这应该让 ZipCode 的值为 NULL,对吗?好吧,显然不是....

我一直收到这个错误:

An exception of type 'System.Data.ConstraintException' occurred in EntityFramework.dll but was not handled in user code Additional information: The 'ZipCode' property on 'Company' could not be set to a 'null' value. You must set this property to a non-null value of type 'System.Int32'.

谁能想出这样做的任何原因?我检查并仔细检查了我的数据库项目和本地数据库,它们都匹配。我所有的单元测试都通过了,所以我在这里几乎不知所措。

如有任何帮助,我们将不胜感激!

最佳答案

您在 C# Entity Framework 中的属性显然是:

public int ZipCode;

你必须把它改成

public Nullable<int> ZipCode;

您也可以在 Entity Framework 的 edmx 文件的可视化编辑器的属性窗口中执行此操作。

更新:

还建议(如果可能)将 ZipCode 的类型更改为字符串。它不仅可以解决当前的“可空”问题,而且还可以很好地适应 future 需求的任何变化!

关于c# - 我的 SQL 表设置为允许此列为 NULL,但是当我运行它时,它说它不能为 NULL。什么/为什么/如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24192830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com