我正在使用SQL Server 2008 Express進行項目工作。我叫SQLEXPRESS
一個實例,我用通過該聯接字符串連接到數據庫:無法通過.edmx文件生成的連接字符串連接SQL Server 2016 Developer
<add name="MyConn" connectionString="metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl;provider=System.Data.SqlClient;
provider connection string="data source=PCNAME\SQLEXPRESS;initial catalog=DbName;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
被.edmx
文件(我的工作產生上的ASP.NET MVC項目,該數據庫連接字符串第一,和實體框架),它工作得很好。
我最近安裝了SQL Server 2016與開發人員許可證。在安裝過程中,我使用了默認實例,即MSSQLSERVER
。有關信息,生成的InstanceID是MSSQL13.MSSQLSERVER
。
我在我的解決方案中有一個SQL項目來重新生成我的新SQL Server上的表;我可以通過嚮導輕鬆連接到服務器。
我還使用SQL Server Management Studio來驗證服務器上的一切正常,它完美地工作(生成表,連接正常)。
然而,我的代碼是無法連接到服務器,系統未能在第一次調用與error 26 - can't locate server instance
這是我到目前爲止已經試過:
- 變化的的
data source
參數聯接字符串localhost
,.
,.\MSSQLSERVER
,.\PCNAME
,PCNAME.MSSQLSERVER
,PCNAME.MSSQL13.MSSQLSERVER
,DOMAIN.MSSQLSERVER
,DOMAIN\PCNAME
=>不行的 - 驗證SQL服務正在運行=>他們是
- 創建
.udp
文件,連接到我的服務器,複製/粘貼生成的連接字符串:Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MyDB;Data Source=PCNAME
=>不行的 - 重生我的.edmx文件(和連接stirng)=>不行的
- 驗證this suggestion =>這是已經是正確的
爲什麼所有的連接嚮導似乎工作(SSMS, .udl
文件,.edmx
發生器,我的DB計劃)而我的代碼無法達到服務器?我沒有更改任何代碼行。
編輯:瘋狂的事情是我有相同的服務器上的日誌數據庫,了連接字符串是
<add name="NLogConn" connectionString="Data Source=localhost;initial catalog=DBLOG;integrated security=True" providerName="System.Data.SqlClient" />
而且它實際登錄的網絡錯誤!那麼它真的是連接字符串錯誤還是EF錯誤?我在每個引用EF的項目上使用最新的EF版本6.1.3(主圖層和DAL圖層)
1 - 我使用EF 6.1.3,最新版本。 2 - 糾正我,如果我錯了,但如果我使用EF,我想我必須使用System.Data.EntityClient作爲提供程序? 3 - 每個引用EF的項目都有自己的配置文件(只有我的主項目和DAL),並且我在每個連接字符串都是相同的地方進行了驗證。另外,我對原始文章進行了編輯 – user2687153
您在示例中給出的連接字符串不是EF連接字符串。您需要所有元數據:'metadata = res://*/Tester.csdl..etc'來顯示此連接字符串正在引用EF生成的文件。 – djangojazz
我在第一個給MyConn的地方複製/粘貼了所有的'metadata = res://'(這似乎不起作用)。另一個確實不是由EF生成的,也不需要這些元數據。 – user2687153