gpt4 book ai didi

c# - 无法将 NULL 值插入字段 (DateTime)

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

我正在努力解决这个问题,尽管在 SO 上有很多关于它的话题。

我有一个具有可为空的 DateTime? 字段的类,如下所示:

public class ActiveItem
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public Nullable<DateTime> TimeStarted { get; set; }
public Nullable<DateTime> LastHeard { get; set; }
}

我有一个数据库模式定义为:

CREATE TABLE [dbo].[ActiveItems] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[TimeStarted] DATETIME NULL,
[LastHeard] DATETIME NULL,
CONSTRAINT [PK_ActiveWorkflows] PRIMARY KEY CLUSTERED ([ID] ASC)
);

然后我尝试保存 ActiveItem,其中 TimeStartedLastHeard 为空。但是,当我尝试这样做时,出现以下错误:

"Cannot insert the value NULL into column 'TimeStarted', table 'dbo.ActiveItems'; column does not allow nulls. INSERT fails.\r\nThe statement has been terminated."

我似乎无法解决这个问题。

奇怪的是,我可以登录到 SQL 服务器并在表中创建一个空值行。这个 Entity Framework 搞砸了吗?

最佳答案

为确保您访问正确的数据库,do a SQL Trace使用探查器。

如果约束违规与您所期望的(就模式而言)不一致,则很可能您正在访问不同的数据库。

然后,将用于连接 Entity Framework 的连接字符串更新为正确的数据库。

关于c# - 无法将 NULL 值插入字段 (DateTime),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30584513/

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