2009-11-05 80 views
22

我有我在哪裏編輯現有數據庫更新paticular字段,DateTime ASP.NET MVC應用程序。我的數據庫有4場,其中兩個是dateCreated會DateModified。當我嘗試更新的領域,我想保持dateCreated會時間是相同的,沒有任何理由來更新它的創建日期,而我使用DateTime.Now一個DATETIME2數據類型爲datetime數據類型的轉換導致外的範圍內的值

這裏改變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"); 
} 

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

+0

我相信,因爲這帖子撰寫,由專人修改EDMX是沒有答案的。在2011年發佈的是Jamiegs更可能的候選人。 – OmegaMan 2015-03-05 02:36:25

回答

19

閱讀this website後,我發現打開了我的數據庫和變化.edmx文件:

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

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

這是可以接受的或者是有沒有修復該錯誤一個更好的辦法?

+0

什麼網站?... – 2009-11-05 05:19:56

+0

http://ifunky.net/post/Type-datetime2-is-not-a-defined-system-type-Entity-Framework.aspx 對不起,如果我發佈了,會有所幫助。 – 2009-11-05 05:35:08

+5

此更改會停止使用DATETIME2類型的EF。這是你的應用程序的正確解決方案嗎?只有你可以這麼說。如果您打算使用DATETIME2,請圍繞此進行規劃。 – 2009-11-05 18:37:31

38

對於我來說,我有同樣的問題,但問題是,默認情況下,當我救了我的模型中,創建一個無效的日期時間。我有一個字段CreatedOn並沒有將其設置爲任何值,這意味着值爲01/01/0001,這是SQL的無效日期時間。設置它爲我擺脫了問題。

+2

我不知道爲什麼仍然是EF 4。3 Code-First爲SQL Server 2008 R2數據庫而不是datetime2創建日期時間字段。 – IsmailS 2012-05-27 11:06:47

12

您也可以編輯模型(或EF中的.edmx),並設置StoreGeneratedPattern來計算了有問題的領域。這將導致它不保存到該字段,因爲它由SQL服務器計算。

+0

這種方式在這種情況下效果最好。請注意,只有在數據庫中指定了缺省值時,它纔有效。由於這個問題是關於DateCreated和DateModified的,所以這些可能會被設置爲'DEFAULT GETDATE()' – CrazyPyro 2014-03-28 22:10:02

6

我有同樣的錯誤,我發現如果你有一個帶有DateTime Nullable字段的SQL 2008數據庫,請不要在你的代碼中明確地指定Null(Nothing)到這個字段,這會導致這個錯誤,或者你可以將所有DateTime字段更改爲DateTime2。

3

只需使用一個日期時間爲空的日期時間等?在您的域實體屬性中,如果您的數據庫中的列可以爲空。這將使它工作。

相關問題