1

開発中の ASP MVC 4 Web サイトで Entity Framework 5 を使用しています。使用するデータベースの数に対して課金される共有ホスティングを使用しているため、実稼働サイトの近くでテスト サイトを実行したいと考えています。

2 つの問題があります。

1) Code First と Database Migration を使用しています。移行クラスは、テーブルの名前の中にスキーマdboを埋め込んでいるようです。

テスト/本番フラグに従ってスキーマを変更するにはどうすればよいですか

2) EF がデータを選択するスキーマを変更するにはどうすればよいですか?

ありがとう、イド。

4

2 に答える 2

4

移行と EF の両方がマッピングからスキーマを取得するため、スキーマを変更する場合は、使用するマッピングを更新する必要があります。

modelBuilder.Entity<MyEntity>().ToTable("MyTable", "MySchema");

構成からの値を制御しMySchemaますが、これは本当に悪い考えです。ある日、値を変更するのを忘れて、生産を中断します。開発とテストにはローカル データベースを使用します。

于 2012-09-09T20:00:30.993 に答える
1

すでに述べたように、開発、テスト、および本番環境で (構造的に) 同一のデータベースを使用します。

スキーマの目的は、C# などの名前空間で行うように、データベース オブジェクトをグループ化すること、またはデータベース オブジェクトのグループのアクセス許可を簡素化することです。データベースの段階を特定するためではありません。それらを後者に使用すると、スキーマを適切に使用することが不可能ではないにしても、はるかに難しくなります。たとえば、このMSDN ホワイト ペーパーを参照してください。

目的を示すために、いくつかのデータベース命名規則を使用する方がはるかに簡単です。

于 2012-09-09T20:16:30.703 に答える