多対多の関係にあるレコードを削除すると、関係テーブルに孤立したレコードが含まれます。私の 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; }
My Car モデルには仮想プロパティ Owners があります。
public virtual ICollection<Owner> Owners { get; set; }
次のように車を削除します (db は私の DbContext、車は車のモデルです)。
db.Cars.Remove(car);
db.SaveChanges()
車を削除すると、その CarId を持つテーブル CarOwners 内のすべてのレコードも削除されることを期待していましたが、そうではありません。何かアドバイス?