1

我需要将 SQL Server Compact 数据库从 3.5 升级到 4.0 版本。我正在使用 linq-to-sql

我尝试了一些在stackoverflow上找到的东西,但没有帮助:

  1. 我尝试Add 4.0 connection了对话框(没有错误消息,已创建 bak 文件)

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

    System.Data.SqlServerCe.SqlCeEngine engine= new System.Data.SqlServerCe.SqlCeEngine("Data source = ...");
    engine.Upgrade();
    
  3. 我检查了数据库损坏(系统返回没有损坏问题)

    System.Data.SqlServerCe.SqlCeEngine engine= new System.Data.SqlServerCe.SqlCeEngine("Data source = ...");
    engine.Verify();
    

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

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

  4. 在调试模式下,我检查了db.Connection.ServerVersion= 返回 3.5.8080.0

  5. 在数据库连接属性版本是 4.0.8876.1

有什么建议么?

4

1 回答 1

1

将数据库升级到 4.0 后,您将无法再创建 dbml 文件,因为负责此操作的工具仅适用于 3.5 数据库文件。一种可能的解决方法是拥有两个版本的数据库,一个 3.5 用于生成 dbml,另一个用于使用。请记住使用 SqlCeConnection 对象初始化 DataContext 对象,否则 4.0 将无法使用 LINQ to SQL - 或者您可以尝试我的 SQL Server Compact Toolbox,它允许您直接从 4.0 数据库文件生成 DataContext(仍然必须使用 SqlCeConnection 初始化目的)

于 2012-12-06T18:18:48.953 回答