DBContext クラスは
public class VGDB : DbContext
{
public DbSet<Planet> Planets { get; set; }
}
モデルは次のようになります。
public class Planet
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
...
public List<Building> Constructions { get; set; }
}
public class Building
{
[Key]
public int Id { get; set; }
public decimal Lvl { get; set; }
public string Type { get; set; }
}
リポジトリ クラス:
public class VGDBRepository
{
private readonly VGDB _vgdb;
...
public void RemovePlanets()
{
foreach (Planet planet in _vgdb.Planets)
{
_vgdb.Planets.Remove(planet);
}
_vgdb.SaveChanges();
}
...
}
Entity Framework は、フィールドで関連付けられたPlanets
との2 つのテーブルを持つデータベースを作成します。クラスのメソッドを呼び出すと、惑星テーブルから惑星レコードが削除され、削除された惑星に関連するすべての建物のフィールドが建物テーブルに null に設定されますが、削除されないため、データベースに冗長なレコードがあります。戦略を使用してデータベースを作成します。このようなタイプの関連データをEntity Frameworkに強制的に削除させるにはどうすればよいですか???Buildings
Planet_Id
RemovePlanets()
VGDBRepository
Planet_Id
code-first