私たちのデータベースは、生産のためのさまざまなスキーマとテスト用のさまざまな同等のスキーマがあるように設計されています。たとえば、多くのテーブルはMyProductionスキーマ内にあり、同じテーブルはMyTestスキーマ内にあります。コードファースト(Entity Framework)とDbContextを使用してエンティティのスキーマ名を取得するにはどうすればよいですか?
私がしたいのは、テーブルがどのスキーマを使用しているかを判断することで、どのスキーマに変更するかを知っています。したがって、デフォルトでは、すべてが本番スキーマの下に置かれます。 DbContextのOnModelCreatingイベントで、テストを指し示す必要がある場合(真/偽の設定によって決まる)、使用されているプロダクションスキーマを判断し、それに相当するテストを指す必要があります。
私はすでにスキーマの設定方法を知っていますが、スキーマの入手方法はわかりません。どのように私はテーブルが使用しているスキーマを決定することができます任意のアイデア?
ありがとうございます。
あなたはそれを取得する必要はありません - あなたはマッピングを担当しているあなたはどのスキーマとテーブルを定義するように、エンティティはにマップされます。 –
私はそれが必要です。私は使用する必要がある少なくとも6つの別々のスキーマを持っています。 3つのスキーマはテスト用で、3つはプロダクション用です。それぞれに100sのテーブルがあります。 thisAnonymousTableがこのプロダクションスキーマを使用している場合、可能な設定でそれぞれ100個のテーブルの3つの別々のリストを管理するのではなく、MyTestSchema(必要に応じて)に変更します。私のクラスとコンテキストは、CodeFirstTemplateジェネレータによってEDMから生成されているため、スキーマを入手する必要があります。私の質問はそうではありませんでした、私はそれをする必要がありますか?私の質問はhow.ThankYouです。 –
これは問題ですが、Entity Frameworkに切り替える前にNHibernateでこれを行うことができます。 Entity Frameworkの方がはるかに優れていますが、この機能を実装する必要があります。なぜなら、OnModelCreatingイベントでこの機能を実装することを望んでいるからです。 –