SQL Server CE不兼容的数据库版本

Gaz*_*z83 2 c# wpf sql-server-ce linq-to-sql

我有一个SQL Server CE 4.0数据库(.sdf文件),当我尝试从我的应用程序(WPF)对数据库进行查询时,我收到以下错误.

不兼容的数据库版本.如果这是兼容文件,请运行修复.对于其他情况,请参阅文档.[Db version = 4000000,Requested version = 3505053,File name = \?\ C:\ Database\ShortageReport\MRPDatabase.sdf]

  • 我已经检查过安装了SQL Server CE 4 sp1.
  • 我尝试在Database.Net 4和vs2012中的连接设置中创建数据库.
  • 我正在运行Windows 7 64位
  • 我的连接字符串存储在app.config.

我正在使用SQL Server Compact Toolbox生成上下文和映射.

我的app.config:

<connectionStrings>
    <add name="DatabaseContext" 
         providerName="System.Data.SqlServerCe.4.0" 
         connectionString="Data Source=C:\Database\ShortageReport\MRPDatabase.sdf"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Eri*_*kEJ 7

添加对4.0版System.Data.SqlServerCe.dll ADO.NET提供程序的引用

然后DataContext使用SqlCeConnection(4.0)对象初始化类.

using (SqlCeConnection conn = new SqlCeConnection(@"Data Source=C:\projects\Chinook\Chinook40.sdf"))
{
    using (Chinook db = new Chinook(conn))
    {
        var list = db.Album.ToList();
        if (list.Count > 0)
            System.Diagnostics.Debug.Print("It works!");
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我想在链接[不兼容的数据库版本3.5对4.0](https://sqlcetoolbox.codeplex.com/workitem/11450)中添加与该问题相关的注释*LInq To Sql运行时硬编码为v 3.5,但是如果使用SqlCeConnection对象而不是连接字符串初始化DataContext,它将与4.*一起使用([ErikEJ评论](http://stackoverflow.com/users/183934/erikej)) (2认同)