我们有一个简单的控制台应用程序,使用EF 4处理数据;从一个读取,做一些东西,插入另一个数据库。在EDMX文件中,目标数据库的ProviderManifestToken设置为“2005”。
昨天,我们的应用程序爆炸了。长话短说,我们的顾问说db应该是SQL Server 2000,升级到2005年。根据他们的说法,升级是应用程序崩溃的原因。没人能解释升级是如何发生的。
ProviderManifestToken的值是否会导致升级到db?例如,如果db当前为2000并且此应用程序以“ProviderManifestToken = 2005”运行,那么是否可以强制对db进行升级?如果版本不匹配,会发生什么?
答案 0 :(得分:1)
您是否认为Entity框架包含安装DVD以将SQL Server 2000升级到SQL Server 2005?不,不。 Provider manifest token仅描述方言(EF根据方言生成查询)。它不会触发对数据库的任何更改。有人必须升级您的数据库(升级到新版本不是免费的 - 您必须拥有该许可证,不是通过Windows更新下载的东西)。
顺便说一下。无论如何,EFv4 SQL Server 2000 is not supported。如果您的方言设置为2005并且您的解决方案适用于您的数据库,那么它始终是2005年,因为使用First
,Single
,Take
,{{linq-to-entities查询为2005方言生成的1}}等在SQL Server 2000上不起作用。