2015-12-17 139 views
0

我有一個解決方案項目,其中我已經在類庫項目中實現了實體框架。 我有相同的類庫的App.config文件,在其中我給我的連接字符串作爲更新數據庫始終在。 SQLEXPRESS,實體框架中更新

<connectionStrings> 
<add name="DefaultConnection" 
     connectionString="Data Source=DDC5-D-4R03T72;Initial Catalog=ServiceAdaptor;User ID=sa;Password=pwd;MultipleActiveResultSets=True;Integrated Security=False" 

     providerName="System.Data.SqlClient"/> 
</connectionStrings> 

(我使用Visual Studio 2010,和我使用的代碼優先方法EF)

現在的問題是,當我運行命令「更新,數據庫-Verbose」, 這不是在上述DB創建表,而它會在我沒有任何地方在我的SOLN沒有提到.\SQLExpress

當我像

Update-Database -Verbose -ConnectionStringName "DefaultConnection" 

它給我留言

「沒有名爲‘DefaultConnection’連接字符串可能會在 應用程序配置文件中找到。」

我得出的結論是我的Update-Database命令無法從配置文件中獲取連接字符串。

無法弄清楚,什麼是錯的。

回答

0

最後我找到了解決方案,有問題在這裏,以某種方式更新數據庫命令搜索Web.Config文件中的連接字符串不在App.Config文件中,因爲在我的情況我有類庫項目其中有App.config文件。

由於它沒有獲得連接字符串默認情況下,VS 10中的EF框架將假定。\ SQLEXPRESS作爲默認數據庫並在那裏創建表。

所以我找到了解決辦法是:

1)添加參考System.Configuration在項目

2)Insteed使用鹼( 「DefaultConnection」)中的DbContext使用如下

基(System.Configuration.ConfigurationManager.ConnectionStrings [「DefaultConnection」]。ConnectionString)

+0

因此,你的連接字符串是在你的啓動項目,聽起來像我一樣,畢竟... –

+0

感謝亞歷克斯爲你的快速努力埠這不是那種情況,因爲你說..問題不是與啓動項目配置文件..它是在我的上下文被實現在同一個類的lib項目。問題是類lib項目有連接字符串,它沒有被Update-database命令識別。我們需要做一些改變,以便從App.config中獲得它。如果它是web.config,它可以正常工作,沒有任何問題。 – Sharad