將datetime2數據類型轉換為日期時間數據類型會導致超出範圍的值

asp.net-mvc datetime entity-framework

我有一個ASP.NET MVC應用程序,我正在編輯現有數據庫以更新特定字段DateTime 。我的數據庫有4個字段,其中兩個是DateCreatedDateModified 。當我嘗試更新字段時,我想保持DateCreated時間相同,沒有理由更新它的創建日期,並且我使用DateTime.Now將DateModified時間更改為當前時間

這是給定的代碼,只是在我做錯了什麼的情況下。這是我第一次使用ASP.NET MVC,所以請溫柔。我已經看到了調用Context其他答案,但我找不到任何對它的引用。當我運行應用程序時,我在標題中收到錯誤消息, contractEntity.SaveChanges()為紅色。

public ActionResult Edit(Contract editContract) {
var contract = (from c in contractEntity.Contracts where c.Id == editContract.Id select c).First();
if (!ModelState.IsValid)
    return View(contract);
// editContract.DateCreated = contract.DateCreated;
// editContract.DateModified = DateTime.Now;
  contractEntity.ApplyCurrentValues(contract.EntityKey.EntitySetName, editContract);
  contractEntity.SaveChanges();
  return RedirectToAction("Index");
}

請,任何幫助表示讚賞。謝謝。

一般承認的答案

閱讀本網站後,我發現打開了我的數據庫的.edmx文件並進行了更改:

<...Provider="System.Data.SqlClient" ProviderManifestToken="2008".../>

<...Provider="System.Data.SqlClient" ProviderManifestToken="2005".../>

這是可以接受的還是有更好的方法來解決這個錯誤?


熱門答案

對我來說,我有同樣的問題,但問題是默認情況下,當我保存模型時,正在創建無效的DateTime。我有一個字段CreatedOn並沒有將它設置為任何東西,這意味著值為01/01/0001這是一個無效的SQL DateTime。設置它擺脫了我的問題。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因