处理基于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。
答案 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