2013-02-20 66 views
0

我有一個從數據庫中生成的EF 5.0模型。該模型存在於類庫項目中。這個類庫項目有一個app.config文件,其中包含模型的連接字符串信息。實體框架5.0設計器無法找到數據庫連接

每當我選擇「從數據庫更新模型」,我不得不重新輸入連接字符串。它似乎沒有看到來自app.config文件的字符串。

此外,在模型更新期間,如果我單擊以將連接字符串保存在app.config中,它永遠不會。

這裏是我的app.config文件:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    </entityFramework> 
    <connectionStrings> 
    <add name="mapEntities" 
     connectionString="metadata=res://*/mapModel.csdl| 
                 res://*/mapModel.ssdl| 
                 res://*/mapModel.msl; 
              provider=Oracle.DataAccess.Client 
              provider connection string= 
               &quot;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myserver.com)(PORT=1521)))(CONNECT_DATA=(SID=MYDB)));User Id=MYUSERNAME;Password=MYPASSWORD;&quot;" 
    providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
</configuration> 

如何使EF看到從app.config中的連接字符串?我需要添加一個函數導入到模型,我不能,因爲它說沒有連接配置模型。

編輯 那麼我找到了一個解決方案,abeit hacky之一。

See this stackoverflow post here

OP聲稱他在該項目中重新創建了一個新的EDMX文件,並對其進行了修復。我也是這樣做的,它的確如此。我沒有重新生成我的舊EDMX文件。我剛剛創建了一個新的,然後回到舊的EDMX,現在它可以工作。

回答

0

將connectionString部分複製到您的web.config文件中。

+0

它已經在那裏。我不需要它在應用程序運行時連接。這是在設計時期,我需要它來連接。 – 2013-02-20 15:47:07

+0

是的,通常當我看到發生這種情況時,這是因爲連接字符串不存在於web.config中或在您的.edmx所在的項目的app.config中。通常,這是因爲它不在app.config中並且再次讀取您的問題,似乎它在那裏丟失。您可能需要手動添加我的聲音。 – 2013-02-20 19:52:30