我当时用的是.mdf
用于连接到database
and entityClient
。现在我想更改连接字符串,这样就不会出现.mdf
file.
是下面的connectionString
正确的?
<connectionStrings>
<!--<add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\NData.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />-->
<add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQL2008;Initial Catalog=NData;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
因为我总是收到错误:
底层提供程序在 Open 时失败
我遇到了这个错误并找到了一些解决方案:
查看您的连接字符串,它看起来有效。我发现这篇博文 http://th2tran.blogspot.com/2009/06/underlying-provider-failed-on-open.html,这里的问题是他们正在使用综合安全 http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.integratedsecurity.aspx。如果您在 IIS 上运行,您的 IIS 用户需要访问数据库。
如果您正在使用实体框架 http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx 有交易 https://stackoverflow.com/questions/452129/entity-framework-using-transactions-and-rollbacks-possible,实体框架自动打开和关闭与每个数据库调用的连接。因此,在使用事务时,您试图将事务分散到多个连接上。这提升到MSDTC http://en.wikipedia.org/wiki/Distributed_Transaction_Coordinator.
(请参阅此参考以获取更多信息。 http://msdn.microsoft.com/en-us/library/bb738698.aspx)
将我的代码更改为以下内容修复了它:
using (DatabaseEntities context = new DatabaseEntities())
{
context.Connection.Open();
// the rest
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)