更改后更新实体框架ObjectContext连接

时间:2013-08-06 12:00:57

标签: c# entity-framework objectcontext entityconnection

处理基于EF4的项目。在我的应用程序中,我更改了ObjectContext使用的命名连接字符串,并将其保存回App.config。但ObjectContext保存了它的连接,并不介意更改。尝试使用手动创建的连接重新启动它,但它不起作用。我有ConnectionManager - 这是Save方法:

    /// <summary>
    /// Save configuration changes
    /// </summary>
    public void Save()
    {
        // Apply connection string
        config.ConnectionStrings.ConnectionStrings[connectionStringName].ConnectionString = entityConnectionStringBuilder.ConnectionString;

        // Save config
        config.Save();

        // Apply changes to context
        EntityConnection newConnection = new EntityConnection(entityConnectionStringBuilder.ConnectionString);
        Entities context = new Entities(newConnection);
        // Entities context = new Entities(config.ConnectionStrings.ConnectionStrings[connectionStringName].ConnectionString);
        context.Dispose();
    }

那么,在没有重新启动程序的情况下持续将新连接应用于ObjectContext是否有任何魔力,或者我应该重新加载App.Config?

注意:所有ObjectContext用法都包含在工作单元模式中,因此每次Dispose d。

1 个答案:

答案 0 :(得分:1)

您需要注意在运行时更改app.config。

如果您在VS中进行测试,请检查哪个文件实际已更改。 在调试开始时复制app.config。

此外,app.config被缓存。所以,除非你

    ConfigurationManager.RefreshSection("xxx");// config manager needs a kick...
你不会有太多运气......

如果仍有问题,建议谷歌周围的app.Config更改。

但我不确定你是否可以让EF读取运行时添加的命名连接字符串。 如果没有,动态连接字符串也可能是您需要查看的内容。 EntityFramework code-first custom connection string and migrations

相关问题