我有一個使用LocalDb和DbContext的Windows窗體應用程序。這在我的開發框中工作正常,但是在部署到另一個框時我無法使其正常工作。更正使用LocalDb和DbContext的應用程序的app.config連接字符串?
在我的app.config,我與實例命名LocalDB實例:
<system.data.localdb>
<localdbinstances>
<add name="LocalProvergience" version="11.0" />
</localdbinstances>
</system.data.localdb>
我的連接字符串是:
<add name="LocalProvergienceEntities"
connectionString="metadata=res://*/ProvergienceModel.csdl|
res://*/ProvergienceModel.ssdl|
res://*/ProvergienceModel.msl;
provider=System.Data.SqlClient;
provider connection string="data source=(localdb)\LocalProvergience;
initial catalog=LocalProvergience;integrated security=True;
multipleactiveresultsets=True;
App=EntityFramework""
providerName="System.Data.EntityClient" />
如果我包括:
AttachDbFilename=|DataDirectory|\LocalProvergience.mdf;
在連接字符串中,我得到了「針對attachdbfilename的Invald鍵值」錯誤。
如果我排除了AttachDbFilename,我得到「與SQL服務器建立連接時出現網絡相關或實例特定的錯誤」錯誤。
幾個問題:
的的ProviderName設置爲 「System.Data.EntityClient」 這應該是 「System.Data.LocalDb」?
- 任何人都可以發佈或指導我的一個正確的app.config的LocalDb和DbContext的例子?
作爲一個實驗 - 我在目標機器上創建了一個名爲LocalProvergience的服務器實例,並通過sqllocaldb命令行啓動實例。 SqlLocalDb我報告 LocalProvergience v11.0 當我運行該應用程序,我得到完全相同的錯誤。 –
有沒有辦法以編程方式獲取DbContext正在使用的連接字符串? –
我已嘗試使用SQLLocalDb info MyInstance命令獲取的命名管道的共享實例的連接字符串以及連接字符串。我在目標機器上使用.Net 4.5。與LocalDb的所有連接均失敗,並且「與SQL Server建立連接時發生網絡相關或實例特定的錯誤」。唯一的變化是命名管道連接,提供者說(提供者:命名管道提供者,錯誤40 ... –