0

実行時にエンティティ モデルが接続されているデータベースを切り替えるにはどうすればよいですか?

たとえば、トレーニング データベースと運用データベースがある場合、アプリケーションの設定を変更して、アプリケーションで 2 つのデータベースを切り替えるにはどうすればよいでしょうか。

4

2 に答える 2

1

通常、これは構成ファイルの設定によって行われます。これは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);
于 2012-06-20T20:17:32.457 に答える
1

Justin Pihony が正解です。構成を変更してアプリを再起動するのではなく、両方のデータベースに同時にアクセスする (前後に切り替える) 場合は、Train 用と Prod 用の 2 つの設定があり、次のようにコンテキストを実行します。

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);
于 2012-06-20T20:47:06.403 に答える