0

プロジェクトでEF5.0を使用しており、OnModelCreatingイベントで次のコードを使用してDbスキーマ名を提供しています

string schemaName = DbSchema; 
modelBuilder.Configurations.Add(new TableMap(schemaName));

しかし、私たちの問題は、OnModelCreating(コンテキスト オブジェクトを再度作成したとしても) イベントが 1 回だけ呼び出され、ループで処理している別のデータベースの Db スキーマ名を変更する必要があることです。

EF 6.0には次のような方法HasDefaultSchemaがあると思いますが、EF5.0の方法を見つけることができません

これを達成する方法はありますか?

4

1 に答える 1

0

最もクリーンな方法は、おそらくモデルを取るDbContext's ctorオーバーロードを使用することです[1]。このようにして、2 つの異なる構成を作成し (スキーマのみが異なります)、必要に応じてこれらを切り替えることができます。

モデル自体はclassによって表され、DbModelclassによって作成されます。方法とほぼ同じです。これを簡単にパラメータ化できます。DbModelBuilderOnModelCreating

[1] 1 つのコンテキストを使用するとします。そうでない場合は、別のコンテキスト クラスを使用します。

于 2013-10-28T19:12:00.243 に答える