将vs2008迁移到vs2012 - 异常LINQ to SQL Library

时间:2013-12-06 02:05:23

标签: c# .net linq visual-studio-2012 sql-server-ce

我对Visual Studio相对较新,我认为最好的方法是[讽刺]做一个重大项目[\ sarcasm]。

此处要完成的工作总结:
VS2008 - > VS2012
Windows7 - > Windows8
SQL CompactServer v3.5 - > SQL CompactServer v4.0
.NET Framework v2.0 - > .NET Framework v4.0

我遇到的一个问题是,即使我已将VS中的数据库文件从SQL_CE_v3.5迁移到SQL_CE_v4.0并更新了我对System.Data.SqlServerCe(4.0)的引用,我得到以下内容尝试以下列方式打开db文件时出现异常。

DB.DataContext = new DB.DataContext(CONNECTION_STRING);

例外:

System.InvalidOperationException: Cannot open '|DataDirectory|\Database.sdf'. Provider 'System.Data.SqlServerCe.3.5' not installed.
at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Initialize(IDataServices dataServices, Object connection)
at System.Data.Linq.DataContext.Init(Object connection, MappingSource mapping)
at System.Data.Linq.DataContext..ctor(String fileOrServerOrConnection, MappingSource mapping)
.
.
.<br>

问题:
如何在此将提供程序名称更改为4.0而不是3.5? 什么是进行所有这些迁移的最佳方式?

1 个答案:

答案 0 :(得分:2)

使用SqlCeConnection对象初始化DataContext对象,而不是连接字符串,如下所示:

DB.DataContext = new DB.DataContext(new SqlCeConnection(CONNECTION_STRING));