質問: 私はプロジェクトをリファクタリングしており、すべてのEFエンティティとコードマイグレーションを新しいプロジェクトに移行したいと考えています。 _MigrationsテーブルのContextKeyの名前を新しい名前空間に変更しました。 Add-Migrationを実行すると、新しい変更は検出されません(Up()とDown()は空です)。しかし、私がlocaldbを削除すると、dbは再作成されません(移動前に実行されました)。移行後に作成された移行のみが実行されているように見えます(ただし、移行しないでください)。 新しいデータベースを作成するときに、すべての移行(移動前の移行)も実行されていることを確認するにはどうすればよいですか? - 編集 - 気にしないで :( 私は既存の移行を新しいプロジェクトにドラッグ・アンド・ドロップし、migration.csファイルの名前空間の名前を変更しましたが、移行の背後にあるコードを忘れました.Designer.cs
回答: dbo.MigrationHistoryテーブルの**ContextKey**カラムの値をすべて更新して、新しい名前空間と一致させることができます。 私にとって私は、ASP.NET MVCアプリケーションから他のプロジェクトと共有するために外部クラスライブラリにすべてのコードの最初のモデルを移動していた。 以下の手順が役立ちます 1. dbo.MigrationHistoryを確認すると、すべてのレコードが同じクラスのConfigurationクラスに一致する類似の値を持つことがわかります > > ``` > MyApp.Migrations.Configuration > > ``` > 2.(テストステップ)Package Manager ConsoleからUpdate-Databaseを実行して、新しいクラスライブラリを選択します。たとえば、以下のエラーが表示されます > > ``` > There is already an object named 'AspNetRoles' in the database. > > ``` > 3. _MigrationHistoryテーブルのContextKey列にあるすべてのレコードを更新して、新しい名前空間に一致させます。 > > ``` > MyApp.Domain.Migrations.Configuration > > ``` >