我只是安装了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="data source=localhost;initial catalog=MyApplicationEntitiesDB;integrated security=True;multipleactiveresultsets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
我不确定是什么问题是EF 4.3中的错误或者我做得不对。
我认为this post解决了这个问题,但并不完全。
任何人都有答案。
感谢Sanj。
答案 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)
我也有这个问题并通过
解决了StartUp project
。 事情按预期进行。
答案 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)
答案 8 :(得分:-1)
对于因在Visual Studio中使用WPF而在收到此错误的情况下到达此处的任何人,请看看这篇文章: Does MVVM stop the ability for the Visual Studio Designer to show xaml?