天天看點

從 datetime2 資料類型到 datetime 資料類型的轉換産生一個超出範圍的值

在使用Entity Framework操作資料庫時遇到的這個錯誤。

  sqlServer2008中提供datetime2類型的資料(比datetime更精确),而用entity framework4會預設的把C#中的

System.DateTime類轉化成sqlServer2008中的datetime2類型,而你的資料庫中的元素的屬性設的是datetime類型,

把datetime2轉化成datetime系統會認為會丢失資料,是以會報錯。(感覺這TM是設計缺陷吧!這是熟麼預設設定啊!)

經過調試發現,這位大哥說的當并不完全正确。SqlServer的datetime有效範圍是1753 年 1 月 1 日到 9999 年 12 月 31 日,如果超出這個範圍,EF就會把datetime轉換為datetime2,也就是會出現上面的錯誤。