SqlServerCe版本问题

时间:2013-11-14 12:36:20

标签: c# .net sql-server-ce

我正在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]

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

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

如果我没弄错的话,你可以使用nuget添加最简单的参考。