The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

使用中的 SQL Server 版本不支援資料型別 'datetime2'。

當初開始用 Entity Framework 的時候,第一個遇到的問題就是資料無法儲存變更,而錯誤訊息就是【使用中的 SQL Server 版本不支援資料型別 'datetime2'。】,我雖然知道 datetime2 是 SQL Server 2008 才出現的資料型態,不過我的資料庫明明就是 SQL Server 2005 而且在建立 Entity Framework 模型的時候也沒有指明我要用 SQL Server 2008 啊,為什麼還會報出這種錯誤呢?!底下就讓我娓娓道來。

這問題對於 Entity Framework 的初學者���說著實是一大障礙,我們從 Entity Framework 設計工具來看,如下圖的 AdminReplyTime 欄位所設定的型別明明就是 DateTime 欄位,但是當執行到 SaveChanges() 時還是會發生例外狀況。

解決這個問題的方法請參考以下步驟:

1. 開啟 *.edmx 檔案的 XML 編輯模式

如果你的 *.edmx 還在開啟中的話,就會出現以下視窗,點選 Yes 即可開啟 XML 格式的編輯畫面:

2. 找到 *.edmx 檔案中的 SSDL 宣告區段,並找到 Schema 標籤的 ProviderManifestToken 屬性,正常在預設的情況下該屬性的值為 2008,代表 SQL Server 2008 的意思。

3. 將 Schema 標籤的 ProviderManifestToken 屬性值修改成 2005 即可!

相關連結