1

我正在 Visual Studio 2012 和 .NET 4.0 中编写一个简单的控制台应用程序。
在解决方案中,我有 2 个项目:

  • 控制台应用程序项目(这是启动项目),称它为 A
  • 库项目(这里我生成了我的 DB 文件和 DataContext),称之为 B

我的数据库是一个 SQL Server Compact Edition 4.0 文件 (DataStore.sdf)。
项目 B 包含在项目 A 中作为参考。
我使用 SQL Server Compact Toolbox 在项目 B 中生成 DataContext。
当我运行应用程序时,我收到以下错误(您可能在其他帖子中看到过):

不兼容的数据库版本。如果这是兼容文件,请运行修复。对于其他情况,请参阅文档。[ Db 版本 = 4000000,请求的版本 = 3505053,文件名 = \?\C:\workspace\projects\mytestapp\bin\Debug\DataStore.sdf ]

我浏览了以下 2 个帖子:
Post_1
Post_2
我的 PC 上安装了两个版本的 SqlServerCe:3.5 和 4.0。x86 和 x64 都可以。
我试图按照 Post_1 中的建议将文件复制到项目 A 和 B 的 /bin 目录中,并从两个项目的相应文件夹中引用 System.Data.SqlServerCe.dll。我也尝试过相同的方法,但使用 /bin/debug 中的文件,没有运气。
我错过了什么吗?
感谢帮助...

4

2 回答 2

2

DataContext 必须使用 SqlCeConnection 对象(不是连接字符串)构造,以便 LINQ to SQL 与 SQL Server Compact 4.0 一起使用。

于 2013-11-14T13:49:42.320 回答
0

听起来好像在您的控制台应用程序的 app.config 中,您指的是 CE3.5,而您的 Datastore.sdf 实际上是 4.0。尝试从控制台应用程序中删除任何 SQL-CE引用,并添加对 SQL-CE4.0 的新引用。

首先检查是否确实是问题所在。如果您的 DataStore 实际上是 3.5,那么您应该删除该引用并将 3.5 引用添加到您的控制台应用程序。

如果我没记错的话,您可以使用 nuget 添加最简单的引用。

于 2013-11-14T13:12:13.913 回答