更改后续订实体框架ObjectContext连接

本文关键字:框架 ObjectContext 连接 实体 | 更新日期: 2023-09-27 18:26:39

正在进行基于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用法都封装在工作单元模式中,因此每次都是Disposed。

更改后续订实体框架ObjectContext连接

在运行时更改app.config时需要小心。

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

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

    ConfigurationManager.RefreshSection("xxx");// config manager needs a kick...

你不会有太多运气。。。

建议在应用程序上搜索。如果仍然存在问题,则进行配置更改。

但我不确定是否可以让EF读取运行时添加的命名连接字符串。如果没有,那么动态连接字符串也可能是您需要查看的内容。EntityFramework代码第一个自定义连接字符串和迁移