我已经针对2008数据库构建了一个实体框架模型.一切都适用于2008数据库.当我尝试更新2005数据库上的实体时,我收到此错误.
The version of SQL Server in use does not support datatype 'datetime2
我在构建数据库时没有使用任何2008功能.我在代码中找不到对datetime2的任何引用.并且,是的,该列在数据库中被定义为"datetime".
datetime entity-framework sql-server-2005 datetime2 sql-server-2008
我有一个使用EF代码优先的asp.net MVC3项目.对于我的单元测试,我一直在使用SQL Server CE 4.0和SQL Server 2008 Express.两者都与EF一起完美地生成了我的数据库.
但是,当我在单元测试之外运行我的应用程序并将其指向我的连接字符串时,我得到了错误
ProviderIncompatibleException:提供程序未返回ProviderManifestToken字符串
我已经阅读了关于此的MS文档,看起来这是SqlVersion
EF模型生成的标记.问题是我使用代码第一种方法,所以我没有.edmx
文件,也不知道在哪里指向我的元数据信息,因为还没有生成数据库.
我知道我的连接字符串,因为db name,username和pass是正确的,因为将它们更改为错误的值会引发预期的错误.不知道从哪里开始.
谢谢.
这是我的连接字符串:
<connectionStrings>
<add
name="SqlConnection"
providerName="System.Data.SqlClient"
connectionString="Data Source=WORKSTATION\SQLEXPRESS;Initial Catalog=CodeFirst;Integrated Security=False;
Persist Security Info=False;User ID=CodeFirst_user;Password=password1;Connect Timeout=120;MultipleActiveResultSets=True;"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud) 我在ASP.NET 4.0 Web窗体中使用Entity Framework 4.0.
一切都很好在开发服务器上.但是当我到达生产服务器时,我的Elmah记录了这个错误
System.ArgumentException
正在使用的SQL Server版本不支持数据类型"datetime2".
我做了一个快速的研究,发现datetime2
aka datetime2(7)
问题和设置ProviderManifestToken="2005"
将解决问题.
我的问题是这个.我的开发服务器具有SQL Server 2008 R2,而生产服务器具有SQL Server 2008 Express.因此,将清单更改为2005似乎并不正确.
我的问题是
ProviderManifestToken="2005"
工作?datetime2
在我没有在任何表中使用它时生成了一个?