繁体   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