【发布时间】:2017-12-29 16:57:46
【问题描述】:
我有一个 WPF 应用程序。它有许多访问数据库的块。连接字符串由我的 App.config 文件中的设置确定。
using (var dbContext = new MyEntities())
{
// ...
}
但现在我需要能够在运行时在不同数据库之间切换。我更新了代码来管理数据库列表,以及每个数据库的连接字符串。
我的问题是,有没有办法让现有代码使用我的代码指示的连接字符串而无需更改现有代码?例如,也许我可以在我的实体类中创建一个静态连接字符串属性,然后修改该类以在每次连接到数据库时使用该属性。
有人做过吗?有什么技巧可以轻松做到这一点吗?
【问题讨论】:
-
切换是指在启动时或在应用程序生命周期内只切换一次?
-
@Evk:运行时间,我的意思是在应用程序运行时。它可能在应用程序的一个实例期间发生任意次数。
-
所有上下文实例都使用相同的连接字符串?
-
@Evk:是的。切换完成后,所有对数据库的访问都将使用新的连接字符串。
-
好吧,那么在这种情况下,我确实只使用静态
ConnectionString属性,您可以从默认上下文构造函数 (public MyContext():base(ConnectionString) {}) 中使用该属性。以上评论可能是针对@JohnH。
标签: c# wpf entity-framework dbcontext