C# 实体框架错误-正在使用的SQL Server版本不支持数据类型';datetime2';
我正在ASP.NET4.0Web表单中使用EntityFramework4.0 在开发服务器上一切正常。但当我到达生产服务器时,我会将此错误记录到我的Elmah日志中 系统参数异常C# 实体框架错误-正在使用的SQL Server版本不支持数据类型';datetime2';,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我正在ASP.NET4.0Web表单中使用EntityFramework4.0 在开发服务器上一切正常。但当我到达生产服务器时,我会将此错误记录到我的Elmah日志中 系统参数异常 正在使用的SQL Server版本不支持 数据类型“datetime2” 我做了一个快速的研究,发现问题出在datetime2akadatetime2(7)上,设置ProviderManifestToken=“2005”可以解决问题 我的问题是这个。我的开发服务器有SQL Server 2008 R2,而生产服务器有
正在使用的SQL Server版本不支持 数据类型“datetime2” 我做了一个快速的研究,发现问题出在
datetime2
akadatetime2(7)
上,设置ProviderManifestToken=“2005”
可以解决问题
我的问题是这个。我的开发服务器有SQL Server 2008 R2,而生产服务器有SQL Server 2008 Express。所以,将舱单改为2005年似乎是不对的
我的问题是
datetime2
,而我在任何表中都没有使用它只要把
DateTime.Now
作为日期,如果没有其他
有相同的错误,这解决了它,因为如果你不设置日期时间对象的值,它将是1/1/0001 12:00:00 AM…这会给你错误,然后。。。这也是我解决问题的方法到目前为止,我看不到任何解决方法。因此,如果您使用的是SQL Server 2008 Express,请右键单击您的edmx,用XML(文本)编辑器打开它并设置
ProviderManifestToken=“2005”
听起来不太好。但到目前为止,这是我所拥有的一切。我发现这篇博文中的答案对我有用: 事实证明,EntityFramework4以某种方式获得了使用SQLServer2008的想法。修复方法是在XML编辑器中编辑.edmx文件,并设置ProviderManifestToken=“2005”而不是2008。(您需要重建。)以下是针对SQL Server 2005的行的外观:
我已经在做了。另外,这个错误将无法将datetime2转换为datetime,对吗?这对我也适用,但如果您必须更新您的模型,它将重置为2008年,如果您正在使用它进行开发。然后,在将代码推出到测试或产品盒之前,您需要再次更改它。只需再次遇到此问题。在模型更新时覆盖设置。也许我们可以通过构建后的行动来“解决”这个问题。虽然这是你问题的重复,但它吸引了更多的注意力和答案,可能值得检查。
<Schema Namespace="OfficeBookDBModel.Store"
Alias="Self" Provider="System.Data.SqlClient"
ProviderManifestToken="2005"
xmlns:store=http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator
xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">