删除多对多关系中的记录时,关系表有孤立记录。我在 DbContext 中设置了以下多对多关系。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Car>()
.HasMany(u => u.Owners)
.WithMany(l => l.Cars)
.Map(ul =>
{
ul.MapLeftKey("CarId");
ul.MapRightKey("OwnerId");
ul.ToTable("CarOwners");
});
}
我的所有者模型具有虚拟属性 Cars:
public virtual ICollection<Car> Cars { get; set; }
我的汽车模型具有虚拟财产所有者:
public virtual ICollection<Owner> Owners { get; set; }
我按如下方式删除 Car(db 是我的 DbContext,car 是 Car 模型)。
db.Cars.Remove(car);
db.SaveChanges()
当我删除汽车时,我希望表 CarOwners 中具有该 CarId 的所有记录也会被删除,但事实并非如此。有什么建议吗?