如何在Entity框架代码第一个数据库中删除相关对象?

Dmy*_*tro 3 c# entity-framework code-first

DBContext类是

public class VGDB : DbContext
    {        
        public DbSet<Planet> Planets { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

模型看起来像:

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; }
    }
Run Code Online (Sandbox Code Playgroud)

存储库类:

public class VGDBRepository
    {
        private readonly VGDB _vgdb;
        ...
        public void RemovePlanets()
        {
            foreach (Planet planet in _vgdb.Planets)
            {
                _vgdb.Planets.Remove(planet);
            }
            _vgdb.SaveChanges();
        }
        ...
    }
Run Code Online (Sandbox Code Playgroud)

实体框架使用两个表创建数据库:Planets和字段Buildings相关Planet_Id.当我调用RemovePlanets()我的VGDBRepository类的方法时,它从行星表中删除行星记录,并将Planet_Id所有建筑物的字段与已删除的行星相关,在Buildings表中设置为null但不删除它们,因此我在数据库中有冗余记录.我使用code-first策略来创建数据库.如何强制实体框架删除此类相关数据???