2012-02-15 141 views
0

我遇到了錯誤,我在實體框架中出錯。我有一個SQL Server 2005 SP2。指定的模式無效

當ProviderManifestToken =「2008」時出現此錯誤。

The version of SQL Server in use does not support datatype 'datetime2'. 

香港專業教育學院做了改變shown here和chagned時, 「2005」,我得到

Schema specified is not valid. Errors: 
DatabaseAccess.Schema.Model1.ssdl(2,123) : error 0169: All SSDL artifacts must 
target the same provider. The ProviderManifestToken '2008' is different 
from '2005' that was encountered earlier. 

我不明白

我的數據庫版本是微軟SQL Server標準版(64位)9.00 .3042.00

我試圖刪除架構並重新添加它無濟於事。重新啓動等

伊夫ALSE的所有我的約會時間字段可爲空

+0

'datetime2'數據類型不是在SQL Server 2005提供 – 2012-02-15 19:30:35

+0

我知道,我不它是如何拿起它,在我的配置公衆可空 MessageDate { get { return _MessageDate; } set { OnMessageDateChanging(value); ReportPropertyChanging(「MessageDate」); _MessageDate = StructuralObject.SetValidValue(value); ReportPropertyChanged(「MessageDate」); OnMessageDateChanged(); } } – 2012-02-15 19:37:50

+0

無法在我的任何源代碼中找到datetime2 – 2012-02-15 19:38:34

回答

0

我之前看到這一點,它是與日期時間是可空做。我認爲,如果你闖入代碼,你會看到創建類的新實例的日期時間值是一個默認值(DateTime),而不是null,並且它是導致錯誤的值。

如果可能,您可以在保存對上下文的更改之前嘗試將DateTime值置零嗎?

我會嘗試組合一個示例來演示何時以及如何發生。

發現了一個簡要的解釋在這裏:

http://dotnetslackers.com/Community/blogs/bmains/archive/2010/11/19/entity-framework-4-and-quot-the-conversion-of-a-datetime2-data-type-to-a-datetime-data-type-resulted-in-an-out-of-range-value-quot.aspx

+0

我按照建議清除所有字段並設置數據庫到2005它打破:DatabaseAccess.Schema.Model1.ssdl(2,123):錯誤0169:所有SSDL工件必須以同一個提供程序爲目標。 ProviderManifestToken'2008'與'2005'不同。我將它設置爲2008年,並打破了使用的SQL Server版本不支持數據類型'datetime2'。 – 2012-02-15 22:31:10

+0

我設法通過銷燬整個業務邏輯項目來解決這個問題,並且基本上重新編寫所有數據庫BLL,然後它就可以工作。必須是某個地方的一個小鬼 – 2012-02-29 10:24:12