私はEntity FrameworkとAuto Migrationsを併用しています。Entity Frameworkコードファーストでテーブルを削除する方法は?
コンテキストに新しいモデルを追加すると、データベースが更新され、新しいテーブルが作成されます。
私がしたいことは、データベースからテーブルを完全に削除することです。ただし、Contextクラスから定義を削除しても機能しません。
public class CompanyContext : DbContext
{
public DbSet<Permission> Permissions { get; set; }
public DbSet<Company> Companies { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}
たとえば、データベースからCompany
テーブルを削除したいとします。これを行うには、プロパティをCompanyContext
クラスから削除します。しかし、それは動作していません。
EFでテーブルを削除し、可能であれば自動移行を使用する適切な方法は何ですか?
私が知る限り、DropCreateDatabaseAlwaysはデータベース全体を削除し、それを再作成します。その結果、データが失われました。私がしたいのは、単一のテーブルだけを削除することです。 –
次に、モデルを更新し、上記のパッケージマネージャーコンソールコマンドを実行してみませんか? – CodeMad
私はそれをしました。 DbContextクラスからモデルクラスを削除し、モデルファイル自体も削除しました。私は、自動移行で残りを処理するべきだと思った。そうではない。 –