在应用程序配置文件中找不到名为“MyApplicationEntities”的连接字符串

时间:2012-06-11 10:03:34

标签: connection-string database-migration entity-framework-4.3

我只是安装了EF 4.3并试图通过迁移升级我的项目。但是我遇到了尝试通过Package Manager控制台对我的项目执行add-migration initial的问题。

现在抛出任何例外No connection string named 'MyApplicationEntities' could be found in the application config file.

现在我的配置已全部

<connectionStrings>
<add name="MyApplicationEntities" 
     connectionString="metadata=res://*/DataModel.csdl|res://*/DataModel.ssdl|res://*/DataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=localhost;initial catalog=MyApplicationEntitiesDB;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

我不确定是什么问题是EF 4.3中的错误或者我做得不对。

我认为this post解决了这个问题,但并不完全。

任何人都有答案。

感谢Sanj。

9 个答案:

答案 0 :(得分:102)

啊,不小心弄明白了。

我不得不删除

public MasterEntities()
    : base("name=MyApplicationEntities")
    //      ^^^^^
{
}

public MasterEntities()
    : base("MyApplicationEntities")
{
}

EF 4.3不喜欢被称为name=xxxxx

的连接字符串

答案 1 :(得分:37)

Sanj指出的解决方案是你需要将连接字符串从数据库项目的App.config复制到web项目的web.config。我不确定为什么上面的答案被标记为正确。我将此作为答案而不是评论添加,以便未来的读者能够发现这一点。

答案 2 :(得分:28)

我遇到了同样的错误,但我已经有一个web.config文件,其中包含正确的连接字符串名称和正确声明的DbContext。但是,我注意到当我使用-Verbose运行add-migration时,它将“启动项目”称为与包含我的上下文的项目不同的项目。所以我改变了启动项目,重新运行了add-migration,一切都运行了!!

答案 3 :(得分:8)

确保您的statup项目配置文件具有连接字符串。link可能对您有所帮助。

答案 4 :(得分:6)

我也有这个问题并通过

解决了
  1. 选择正确的StartUp project
  2. 在软件包管理器控制台上重新运行命令。
  3. 事情按预期进行。

答案 5 :(得分:2)

我也遇到了类似的异常。 AppConfig最初是在我们生成实体模型的项目中创建的。 但是如果您正在使用其他项目执行应用程序(我的解决方案中有多个项目),则AppConfig需要包含在正在执行的项目中。

答案 6 :(得分:0)

 1. ctor => Context

   public MasterEntities()
    : base("ConnectionStringName")
{
}

 2. config file

   <add name="ConnectionStringName"
      connectionString="Data Source=.;Initial Catalog=DatabaseName;User Id=sa; Password=YourPass;"
      providerName ="System.Data.SqlClient" />

 3. in Sulation Exporer right click the project and select 'Set as
    startup project'

 4. in PackageManagerConsole Change Default Project to Your Project of
    context class.

 5. then:

add-migration new
  

或将ConnectionString添加到工作项目的配置文件中。

答案 7 :(得分:0)

就我而言,我有两个项目:

enter image description here

我只需要将连接字符串从 DAL App.Config 项目复制到 WPF App.Config 项目

答案 8 :(得分:-1)

对于因在Visual Studio中使用WPF而在收到此错误的情况下到达此处的任何人,看看这篇文章: Does MVVM stop the ability for the Visual Studio Designer to show xaml?