WPF EF DB连接字符串:在连接字符串中使用附加的数据库时出错

时间:2013-12-10 12:55:53

标签: c# wpf sql-server-2008 entity-framework windows-installer

此连接字符串工作

在我的本地系统上,我使用的是数据库连接字符串

<connectionStrings>    
<add name="GaugeSelectorEntities" connectionString="metadata=res://*/Gage.csdl|res://*/Gage.ssdl|res://*/Gage.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=GEORGE1\SQL08R2;Initial Catalog=GaugeSelector;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />   
</connectionStrings>

这完全没问题。

更改了数据库文件的安装并导致错误

现在我必须部署WPF应用程序,所以我想从数据库中附加mdf文件。因此,根据Web上的现有资源建议,我将字符串更改为

<connectionStrings>
<add name="GaugeSelectorEntities" connectionString="metadata=res://*/Gage.csdl|res://*/Gage.ssdl|res://*/Gage.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=GEORGE1\SQL08R2;AttachDbFilename=|DataDirectory|\DB\GaugeSelector.mdf;Initial Catalog=GaugeSelector;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 
</connectionStrings>

唯一的变化是

AttachDbFilename=|DataDirectory|\DB\GaugeSelector.mdf;

我将数据库的mdf文件从其位置复制到可执行路径中的文件夹DB。顺便说一句,我使用LINQ到EF。但现在我开始得到错误。

{"The underlying provider failed on Open."}

现在我读到了如果没有打开对象上下文可能会发生的事情。所以我把

GSData.Connection.Open();

但现在它在这里打破同样的错误。 我的方法本身是错的(那么应该是什么方法)或者我只需要对连接字符串进行一些小的修改?

0 个答案:

没有答案