【问题标题】:How can I upgrade my Sql Server CE 3.5 sdf database to Sql Server CE 4.0?如何将我的 Sql Server CE 3.5 sdf 数据库升级到 Sql Server CE 4.0?
【发布时间】:2011-06-12 06:51:36
【问题描述】:

我需要将我的 SqlCE3.5 数据库更新到 4.0。

当我尝试使用新的 CE4.0 连接提供访问我的 3.5 sdf/数据库时收到以下错误消息:-

System.Data.EntityException:基础提供程序在打开时失败。 ---> System.Data.SqlServerCe.SqlCeInvalidDatabaseFormatException:数据库文件已由 SQL Server Compact 的早​​期版本创建。 请使用 SqlCeEngine.Upgrade() 方法升级

有人知道我该怎么做吗?显然我需要以编程方式进行,但我不确定我应该做什么/我需要添加哪些引用等。

干杯!

【问题讨论】:

  • 不明显吗?致电SqlCeEngine.Upgrade()!还是有问题?还要注意不同版本之间的不兼容性。
  • 提示:请提供一些代码示例。当我尝试一些代码时,它无法编译。
  • 在此处查看我的博客文章以获取示例代码:erikej.blogspot.com/2010/08/…
  • 在哪里可以找到我需要参考的 SqlCE 4.0 dll? (它没有在 .NET 参考文献中列出)。我可以 NuGet 吗?
  • @leppie: i) 在哪里?在什么情况下?有什么论据? ii) SqlCeEngine 不包含名为 Upgrade() 的方法。消息没用。

标签: visual-studio-2010 entity-framework-4 sql-server-ce sql-server-ce-4


【解决方案1】:

致电System.Data.SqlServerCe.SqlCeEngine.Upgrade。请参阅MSDN,其中包含示例代码。

【讨论】:

    【解决方案2】:

    当您看到此错误时,您无需升级:

    数据库文件是由早期版本的 SQL Server Compact 创建的。请使用 SqlCeEngine.Upgrade() 方法进行升级。

    简单地说:

    1. 在解决方案资源管理器中右键单击您的项目
    2. 选择属性,转到参考标签
    3. 您会看到一个名为:System. Data.SqlServerCe Type/net version/4.0 的引用 - 删除此项目(选择项目,然后单击此窗口底部的删除)。
    4. 点击“删除”按钮左侧的“添加...”按钮
    5. 在 .NET 选项卡中,找到 System.Data.SqlServerCe 3.5 并添加它。
    6. 编译您的项目!

    我认为这会奏效。

    【讨论】:

    • 是的,不需要升级,除非你需要。如果在 .NET 选项卡中没有找到 System.Data.SqlServerCe,请添加来自 C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Desktop 的引用
    • 这个建议非常冒昧:许多从 Visual Studio 2015 开始的人不太可能在他们的机器上安装 v3.5 版本的 SqlServerCe。如果您要建议添加对 v3.5 的引用,如果人们的系统上没有该版本,您有什么想法可以获取该版本吗?
    • @Jazimov 你是对的,但我在 3 年前在你发表评论之前回答了这个问题,而在 2013 年这是很正常的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    相关资源
    最近更新 更多