我使用。mdf来连接数据库和entityClient。现在我想改变连接字符串,这样就不会有.mdf文件了。

下面的connectionString是否正确?

<connectionStrings>
   <!--<add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\NData.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" 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=&quot;Data Source=.\SQL2008;Initial Catalog=NData;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

因为我总是得到错误:

基础提供程序在Open上失败


当前回答

我有一个类似的问题:在我的测试用例执行中,我总是得到这个错误。我发现,我的“分布式事务服务”没有启动(运行:services。启动“分布式事务服务”(最好设置为自动启动))。在我这么做之后,它就像魔法一样有效……

其他回答

我发现问题是,我在连接字符串中的一个变量中有服务器路径:

SERVER\SQLEXPRESS
SERVER

其实我应该:

.\SQLEXPRESS

由于某种原因,每当它难以定位SQL实例时,我就会得到错误。

我犯了一个常见的错误,因为我把应用程序从一台pc移动到另一台pc,上面没有一个工作,我忘记把连接字符串复制到App.Config和Web.Config!

为服务器机器上的SQL Server(和端口1433)定义一个新的Windows防火墙规则可以解决这个错误(如果您的服务器名、用户登录名或密码在连接字符串中没有错误…)。

当您收到这个异常时,请确保展开详细信息并查看内部异常详细信息,因为它将提供关于登录失败原因的详细信息。在我的例子中,连接字符串包含一个没有访问我的数据库的用户。

无论您使用的是集成安全(登录Windows用户的上下文)还是个人SQL帐户,请确保该用户在“安全”下对您试图访问的数据库具有适当的访问权限,以防止此问题。

没有一个答案对我有用

我认为我们中的一些人都会犯愚蠢的错误,失败有100种方式……

我的问题是新项目,我在另一个项目中设置了所有的配置,但调用者是一个Web Api项目,其中我必须在Web Api项目中复制相同的连接字符串。

我认为这很疯狂,因为我甚至没有从web api中更新dbcontext或任何东西。

否则,类库将试图查找一个名为

TokenApi.Core.CalContext   

其中我的项目名为TokenApi。Core和CalContext是连接字符串的名称和文件名