您好我正在尝试使用LINQ和SQL Server CE。我用SqlMetal生成了dmbl文件,将其添加到项目中,并添加了对程序集System.Data.SqlServerCe.dll
的引用
我的应用程序是基于.NET4.0的WPF,并且构建为x86。
在我的电脑上安装SQL Server CE。
我尝试了以下代码:
const string connStr = @"Spiri_SQL_CE_DB.sdf";
var dataContext = new Spiri_SQL_CE_DB(connStr);
var testNicks = dataContext.TestNick;
但是我收到了这个错误:
无法打开'C:\ Users \ Jan \ Documents \ Visual Studio 2010 \ Projects \ C#\ Pokec_Messenger_Project \ Pokec_Messenger \ DB_TEST \ Spiri_SQL_CE_DB.sdf'。未安装提供程序'System.Data.SqlServerCe.3.5'。
我错过了什么?对某些装配或其他东西的引用?
如果我在.NET3.5上重新定位应用程序它运行良好!
答案 0 :(得分:5)
您需要Microsoft SQL Server Compact 3.5,请点击此处查看下载链接:http://www.microsoft.com/sqlserver/2005/en/us/compact.aspx
通常,此数据库仅适用于x-copy部署,因此一旦将其安装在dev计算机上,就可以将其复制到工作环境目录中。
答案 1 :(得分:3)
这个解决方案对我很有用,你需要的只是传递一个SQLCE Connection对象而不是连接字符串:
const string connStr = @"Spiri_SQL_CE_DB.sdf";
var conn = new System.Data.SqlServerCe.SqlCeConnection(connStr);
var dataContext = new Spiri_SQL_CE_DB(conn);
var testNicks = dataContext.TestNick;
答案 2 :(得分:1)
如果您在64位Windows上运行该应用程序。除了安装Microsoft SQL Server Compact 3.5之外,您必须通过在项目属性内部的构建配置中将平台目标更改为x86来强制应用程序为x86 CPU。