質問: "Test" } }); context.SaveChanges(); } ``` しかし、私はエラーが出ます: > 無効なオブジェクト名 'mySchema.MyNewTable'。 > > 私が必要なことをすることは可能ですか?同じ移行でテーブルを作成し、そこにデータを挿入しますか? テーブルを作成したり、テーブルにデータを挿入したりするマイグレーションは他にもありますが、同じマイグレーションには入れません...
回答: 私の推奨事項は、コードをシード.aspx)メソッドに挿入することです。移行では、 DbMigrationsConfiguration.aspx)クラスに独自の`Seed`メソッドが導入されました。この`Seed`メソッドは、データベース初期化子の`Seed`メソッドと2つの重要な点で異なります。 * `Update-Database` PowerShellコマンドが実行されるたびに実行されます。 Migrationsイニシャライザーが使用されていない限り、アプリケーションの起動時にMigrations `Seed`メソッドは実行されません。 * Migrationsはデータベースを削除して再作成するのではなく進化させているため、データベースに既にデータが含まれている場合を処理する必要があります。 最後の理由から、 `Seed`メソッドで`AddOrUpdate`拡張メソッドを使用すると便利です。 `AddOrUpdate`は、エンティティがデータベースに既に存在するかどうかを確認し、存在しない場合は新しいエンティティを挿入するか、存在する場合は既存のエンティティを更新します。 したがって、この方法で必要なスクリプトを実行してみてください。 ``` Update-Database â€“TargetMigration: ScriptName ``` また、 `Seed`メソッドはデータを挿入するジョブを実行します。 ジュリー・ラーマンが彼女のブログで言ったように: > AddOrUpdateの役割は、開発中にデータをシードするときに重複を作成しないようにすることです。 > >