![](/img/trans.png)
[英]Conversion of a datetime2 error while trying to save DateTime field using entity framework
[英]Entity Framework Cannot Save - Conversion Of Datetime2 To DateTime Failing
我遇到了一個問題,其中我的一些Entity Framework實體無法保存數據。 我得到的錯誤是
The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value
我有一個名為“注釋”的表。 它具有一個稱為“ 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線程,建議是確保使用正確的日期,並且該日期不應為null。 日期不為空,並且一定在可接受的最小/最大限制內。 我還嘗試將列的類型轉換為數據庫中的datetime2,但這不能解決問題。 奇怪的是,這似乎是最近發生的問題。 我唯一能想到的是環境中的變化是我們將項目遷移為使用MVC 4。
我該怎么做才能解決此問題並使我的Note實體正確保存?
朱莉·萊曼(Julie Lerhman)在這里討論了這個確切的問題( http://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Entity-Framework-Tips-and-Tricks ),請相信我,她是專家。
我自己,我會像這樣使[NoteDateTime]在您的代碼中為空
public DateTime? NoteDateTime { set; get; }
如您尚未提到的那樣,請使用Sql事件探查器查看發送到服務器的SQL。 嘗試手動運行sql,看看返回了什么錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.