Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 将SQL Server CE数据库(.sdf)从3.5更新到4.0_Visual Studio 2012_Linq To Sql_Sql Server Ce - Fatal编程技术网

Visual studio 2012 将SQL Server CE数据库(.sdf)从3.5更新到4.0

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(..) 在调试模式下,我选中了

我需要将SQL Server Compact数据库从3.5版升级到4.0版。我正在使用LINQtoSQL

我尝试了在stackoverflow上找到的一些方法,但没有任何帮助:

  • 我尝试了添加4.0连接对话框(没有错误消息,创建了bak文件)

  • 我尝试在代码中升级:(没有错误消息)

  • 我检查了数据库是否损坏(系统返回没有损坏问题)

    在这些操作之后,我想重新创建dbml文件-我收到了错误消息

    不兼容的数据库版本(..)数据库版本4000000,请求的版本3505053(..)

  • 在调试模式下,我选中了
    db.Connection.ServerVersion
    =返回3.5.8080.0

  • 数据库中的连接属性版本为4.0.8876.1


  • 有什么建议吗?

    一旦您将数据库升级到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();