簡體   English   中英

在運行時更改實體模型數據庫

[英]Change Entity model database at runtime

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

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

通常這是通過配置文件設置完成的。 這是關於EF連接字符串的MSDN這里有一些關於它的更多信息,基本上說它應該在你的app.config中

而且,如果你想要代碼中的東西, 這里是一個代碼項目

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);

Justin 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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM