在应用程序configuration文件中找不到名为“MyApplicationEntities”的连接string
我只是安装EF 4.3并试图通过迁移升级我的项目。 但是我正在尝试通过包pipe理器控制台执行add-migration initial
到我的项目的问题。
现在抛出任何exceptionNo connection string named 'MyApplicationEntities' could be found in the application config file.
现在我的configuration已经完成了
<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中的一个错误,还是我做得不对。
我认为这个post已经解决了这个问题,但不是很完美。
任何人都有答案。
感谢桑吉。
啊,意外的发现了这个。
我不得不删除
public MasterEntities() : base("name=MyApplicationEntities") // ^^^^^ { }
至
public MasterEntities() : base("MyApplicationEntities") { }
EF 4.3不喜欢连接string被称为name=xxxxx
Sanj指出的解决scheme是,您需要将连接string从数据库项目的App.config复制到Web项目的web.config。 我不知道为什么上面的答案被标记为正确的。 我将这个作为答案而不是评论join,所以未来的读者会发现这一点。
我有同样的错误,但我已经有一个正确的连接string名称和DbContext声明正确的web.config文件。 不过,我注意到当我用-Verbose运行add-migration时,它将“启动项目”声明为不同于包含我的上下文的项目。 所以我更改启动项目,重新运行添加迁移,它一切工作!
确保你的statup项目configuration文件有连接string。这个链接可能会帮助你。
我也有这个问题,并通过解决
- select正确的
StartUp project
。 - 在Package Manager控制台上重新运行该命令。
事情按预期完成。
我也遇到了类似的例外。 AppConfig最初是在我们生成实体模型的项目中创build的。 但是,如果您使用其他项目执行应用程序(在我的解决scheme中有几个项目),则需要将AppConfig包含在正在执行的项目中。
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添加到工作项目的configuration文件中。