gpt4 book ai didi

c# - Entity Framework 无法保存 - Datetime2 到 DateTime 的转换失败

转载 作者:太空宇宙 更新时间:2023-11-03 13:35:37 26 4
gpt4 key购买 nike

我遇到了一些 Entity Framework 实体无法保存数据的问题。我得到的错误是

The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value

我有一张名为“Notes”的表格。它有一个名为“NoteDateTime”的日期时间字段。下面是用于创建表的 SQL 片段。如您所见,NoteDateTime 字段没有任何异常。

CREATE TABLE [db].[Notes](
[NoteID] [int] IDENTITY(1,1) NOT NULL,
[NoteText] [varchar](8000) NULL,
[NoteDateTime] [datetime] NULL,
[IsReviewRequired] [bit] NULL,
[ConvertToGlobal] [bit] NULL,
[EmployeeID] [int] NULL,
[EvaluationID] [int] NULL,
[CustomerID] [int] NULL,
[EmailID] [int] NULL,
[AddedWhenMerged] [bit] NULL,
CONSTRAINT [PK_Notes] PRIMARY KEY CLUSTERED
(
[NoteID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

在我的 C# 代码中,我填充了一个“Notes”实体并调用了 SaveChanges() 方法。当我调用 SaveChanges() 时发生错误。

dbContext.Notes.Add(new Note
{
EvaluationID = evaluationId,
CustomerID = customerId,
EmployeeID = employeeId,
NoteDateTime = DateTime.Now,
NoteText = noteText,
});

dbContext.SaveChanges();

我读过几个 stackoverflow 线程,建议是确保使用正确的日期并且日期不应该为空。日期不为空,并且肯定在可接受的最小/最大限制范围内。我还尝试将列的类型转换为数据库中的 datetime2,但这并没有解决问题。奇怪的是,这似乎是最近才出现的问题。我能想到的唯一在我们的环境中发生变化的是我们将我们的项目迁移到使用 MVC 4。

如何解决此问题并正确保存我的笔记实体?

最佳答案

Julie Lerhman 在这里 ( http://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Entity-Framework-Tips-and-Tricks ) 讨论了这个确切的问题,相信我,她是专家。

我自己,我会像这样在您的代码中使 [NoteDateTime] 可为空

public DateTime? NoteDateTime { set; get; }

关于c# - Entity Framework 无法保存 - Datetime2 到 DateTime 的转换失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18795762/

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