2012-06-20 154 views
0

如何在運行時切換實體模型所連接的數據庫?在運行時更改實體模型數據庫

如果我有培訓數據庫和生產數據庫,例如,如何通過更改應用程序中的設置來使我的應用程序在兩者之間切換。

+0

配置文件中的連接字符串?我不太熟悉WPF,但在WCF或ASP.NET中,會有一個web.config。 –

回答

1

賈斯汀Pihony有正確的答案。 如果您想要同時訪問兩個數據庫(來回切換)而不是更改配置並重新啓動應用程序.....那麼您有兩個設置一個用於Train和一個用於Prod,然後執行您的上下文,如下所示:

string training = ConfigurationManager.ConnectionStrings["Train"].ToString(); 
string production = ConfigurationManager.ConnectionStrings["Prod"].ToString(); 

..... 
EFContext context = null; 
if (InTraining) 
    context = new EfContext(training); 
else 
    context = new EfContext(production); 
+0

這正是我所期待的。謝謝。 – mdhunt

1

通常這是通過配置文件設置完成的。 Here is the MSDN on EF connection stringshere is some more info on it, basically saying it should be in your app.config

而且,如果你想從代碼的東西,here is a code project

string connectionString = new System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]); 

System.Data.SqlClient.SqlConnectionStringBuilder scsb = new System.Data.SqlClient.SqlConnectionStringBuilder(connectionString); 

EntityConnectionStringBuilder ecb = new EntityConnectionStringBuilder(); 
ecb.Metadata = "res://*/Sample.csdl|res://*/Sample.ssdl|res://*/Sample.msl"; 
ecb.Provider = "System.Data.SqlClient"; 
ecb.ProviderConnectionString = scsb.ConnectionString; 

dataContext = new SampleEntities(ecb.ConnectionString); 
相關問題