Visual studio 2012 将SQL Server CE数据库(.sdf)从3.5更新到4.0
我需要将SQL Server Compact数据库从3.5版升级到4.0版。我正在使用LINQtoSQL 我尝试了在stackoverflow上找到的一些方法,但没有任何帮助:Visual studio 2012 将SQL Server CE数据库(.sdf)从3.5更新到4.0,visual-studio-2012,linq-to-sql,sql-server-ce,Visual Studio 2012,Linq To Sql,Sql Server Ce,我需要将SQL Server Compact数据库从3.5版升级到4.0版。我正在使用LINQtoSQL 我尝试了在stackoverflow上找到的一些方法,但没有任何帮助: 我尝试了添加4.0连接对话框(没有错误消息,创建了bak文件) 我尝试在代码中升级:(没有错误消息) 我检查了数据库是否损坏(系统返回没有损坏问题) 在这些操作之后,我想重新创建dbml文件-我收到了错误消息 不兼容的数据库版本(..)数据库版本4000000,请求的版本3505053(..) 在调试模式下,我选中了
db.Connection.ServerVersion
=返回3.5.8080.0有什么建议吗?一旦您将数据库升级到4.0,就不能再创建dbml文件,因为负责此操作的工具仅适用于3.5数据库文件。一种可能的解决方法是使用两个版本的数据库,一个用于生成dbml,另一个用于使用。请记住使用SqlCeConnection对象初始化DataContext对象,否则4.0将无法与LINQ to SQL一起使用-或者您可以尝试我的SQL Server Compact Toolbox,它允许您直接从4.0数据库文件生成DataContext(必须仍然使用SqlCeConnection对象初始化)一旦您将数据库升级到4.0,您不能再创建dbml文件,因为负责此操作的工具仅适用于3.5数据库文件。一种可能的解决方法是使用两个版本的数据库,一个用于生成dbml,另一个用于使用。请记住使用SqlCeConnection对象初始化DataContext对象,否则4.0将无法与LINQ to SQL一起使用-或者您可以尝试我的SQL Server Compact Toolbox,它允许您直接从4.0数据库文件生成DataContext(仍必须使用SqlCeConnection对象初始化)@ErikEJ在我的情况下,即使在我使用SQL Server Compact Toolbox生成了
DataContext
之后,我仍然需要使用SqlCeConnection
对象对其进行初始化,否则我会出现这个“不兼容的数据库版本”错误。@ErikEJ在我的例子中,即使在我使用SQL Server Compact Toolbox生成了DataContext
之后,我仍然需要使用SqlCeConnection
对象初始化它,否则会出现“不兼容的数据库版本”错误。
System.Data.SqlServerCe.SqlCeEngine engine= new System.Data.SqlServerCe.SqlCeEngine("Data source = ...");
engine.Upgrade();
System.Data.SqlServerCe.SqlCeEngine engine= new System.Data.SqlServerCe.SqlCeEngine("Data source = ...");
engine.Verify();