如何从App.config加载EF连接字符串后呢?

时间:2012-10-17 07:54:54

标签: c# connection-string app-config entity-framework-5 dbcontext

我有问题,无法找到解决方案。
一开始我有App.config个文件:

...
<connectionStrings>
    <add name="IdealsadEntities" connectionString="" providerName="System.Data.EntityClient" />
</connectionStrings>
...

在我的应用程序( WinForm )中,我读取了从 xml 文件连接到数据库的参数,然后覆盖了App.config并获得了编译文件AppName.exe.config。< / p>

问题在于创建实体实例。我在创建文件后使用了这段代码:

IdealsadEntities _db = new IdealsadEntities();

但在首次运行时,应用_db.Database.Connection null 。在第二次运行时,它从AppName.exe.config文件中读取并正常工作。

问题:

  • 所以我的问题是为什么第一次运行读取空字符串,即使我 重写这个文件?
  • DbContext是否先执行?
  • 如何修复它,从重写文件中获取新的连接字符串?

1 个答案:

答案 0 :(得分:2)

您的app.config仅在应用程序启动时读取。在重新启动程序之前,不会注意到在应用程序运行期间写入的更改。

但是,您可以使用连接字符串构建实体,如下所示:

IdealsadEntities _db = new IdealsadEntities("metadata=res://...");

使用从其他文件中读取的数据替换connectionstring中的相应信息。