データを表示するために一連のテーブルから動的に選択しているEntity Frameworkを使用するプログラムがあります。私のOnModelCreating
関数内EFデータベースコンテキストがクリアされない
modelBuilder.Entity<Revision>().ToTable("Revisions" + suffix);
:
Revisions2016
Revisions2017
Revisions2018
これまでのところ、私は、呼び出しを通じて流暢APIを使用して別のテーブルを選択することができるよ:データベース内の私のテーブルは、の線に沿って何か命名されていますデータベースコンテキスト。私の問題は、私は次のようを通じて新しいデータベースコンテキストを作成しようとしたときにということである。
public static void AccessRevisions(string tableName)
{
using (var context = new RevisionsContext(tableName))
{
var revisionListing = context.Revisions.ToList();
foreach (object o in revisionListing)
{
Revision r = o as Revision;
Console.WriteLine(String.Format("ID: {0} NOTES: {1} AUTHOR: {2}", r.RevisionID, r.RevisionNotes, r.RevisionAuthor));
}
}
}
「使用」によって限定されると私はデータベースコンテキストの寿命を指定したが、常に古いものを選択してしまうようです関数を呼び出すときに指定されたテーブルに変更するのではなく、テーブルを変更します。つまり、2016と2017を指定した場合、クエリ結果は常に2016と思われます。
context.Database.Initialize(force: true);
とDatabase.SetInitializer(new DropCreateDatabaseAlways<RevisionsContext>());
を使用してコンテキストの初期設定を強制しようとしましたが、これらは何もしないようです。誰かが適切に私のデータベースコンテキストを再作成する方法や動的にテーブルを切り替える方法について私を指すことができるでしょうか?