我安装了SQL Server 2014 localdb和SQL Server Management Studio。我正在尝试使用在Visual Studio中开发的WPF应用程序连接到localdb
。
这是我正在使用的连接字符串
<connectionStrings>
<add name="ReservationContextString"
connectionString="Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=ReservationDB;AttachDbFilename=|DataDirectory|\\ReservationDB.mdf"
providerName="System.Data.SqlClient" />
</connectionStrings>
当我运行应用程序时,我得到以下异常
EntityFramework.dll中发生了'System.Data.SqlClient.SqlException'类型的异常但未在用户代码中处理
其他信息:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)
我不确定为什么该应用程序无法连接到localdb
注意:我可以使用SQL Server Management Studio使用localdb
作为服务器名称连接到(localdb)\MSSQLLocalDB
。因此,localdb似乎已正确安装。
答案 0 :(得分:1)
从这个troubleshooting guide中获取灵感,我能够解决这个问题。实体框架的defaultConnectionFactory应指向localdb实例,但在app.config(或web.config)中,我将其设置为指向SQL Server实例。必须将其更改为使用localdb实例。
旧条目
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</defaultConnectionFactory>
....
</entityFramework>
应为(新代码)
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="MSSQLLocalDB" />
</parameters>
</defaultConnectionFactory>
..
</entityFramework>
注意 System.Data.Entity.Infrastructure.LocalDbConnectionFactory , 而不是 System.Data.Entity.Infrastructure.SqlConnectionFactory
答案 1 :(得分:0)