質問: 私は、EFによって完全に管理される1つのモデルクラスと、データベースビューにマップされるもう1つのモデルクラスを持つ、Domain mayに固有のDbContextを作成しようとしています。 EFがすでに存在するこのビューを作成しようとしないように、私はDbContextにビューを追加し、次のコマンドを実行しました: ``` Add-Migration InitialUnmanaged -IngoreChanges ``` これは空のUpとDownを使ってMigrationを作成します。これはまさに私が望むものです。この移行を使用して私のdevデータベースを更新することはできますが、EF管理モデルクラスを含む2番目の移行を追加しようとすると、エラーが発生します。 ``` Add-Migration Initial ``` > 次の明示的な移行が保留中であるため、明示的な移行を生成できません:[201510151553565_InitialUnmanaged]。新しい明示的な移行を生成する前に、保留中の明示的な移行を適用してください。 > > 問題は、私は既にその明示的な移行を適用しており、MigrationHistoryテーブルでそれを見ることができます。 > MigrationId > > 201510151553565_InitialUnmanaged > > 誰が私がなぜこれが起こっているのか、それを回避する方法を理解するのを助けることができますか?
回答: 私はこれを考え出した。 マイグレーションを適用すると、マイグレーション履歴テーブルがモデルと同じデフォルトスキーマに置かれます。しかし、私はそれをロールバックしようとしたときに、接続されたユーザーのスキーマ内のマイグレーション履歴を探していました。そこにはなかったので、データベースはバージョン0であると考えました。 OracleDbConfigurationクラスを作成して、Migration History表のデフォルト・スキーマを指定するカスタムHistoryContextを指定し、移行を適用した後に期待どおりにロールバックできるようにしました。 マイグレーション履歴表のスキーマを明示的に指定しているので、私の最初のステップを再作成して、期待通りに機能させることができたことを確認しました。