2013-02-20 88 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