.NET 的 datetime2 错误

  之前看到SQL2008有自动联想功能觉得巨叼,于是升级之,这是前提。

  用了许久,中途有给公司综合运用系统升级功能。突然有一天一个分公司的QQ上告诉我某数据添加失败,试了几次都不行。

  我在本地测试,哎呀,没问题啊。突然想起服务器上是SQL2005 ,我的是SQL2008。于是本机用SQL2005测试,果然报错了,“从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值。”很明显是SQL2005不支持date类型。

  好吧,把EF设置为2005吧,网络上说直接把edmx文件中ProviderManifestToken=”2008”修改为2005就可以了,其实不是。要分为2步:
1. 打开edmx视图-右键-从数据库更新模型。 这里要从SQL2005去更新
2. 用编辑工具打开edmx文件找到ProviderManifestToken=”2008”修改为ProviderManifestToken=”2005”

  搞定,生成,测试,成功!