非常に単純な単方向クラス マッピングがあります。
public class MyDbContext : DbContext
{
public MyDbContext() : base("CodeFirstDatabase")
{
}
public DbSet<Contact> Contacts { get; set; }
public DbSet<PhoneNumber> Number { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
modelBuilder.Entity<Contact>()
.HasMany(c => c.Numbers)
.WithOptional()
//.Map(p => p.MapKey("ContactId"))
.WillCascadeOnDelete(true);
}
}
ご覧のとおり、Contact には Number のリストがありますが、Number は Contact について何も知りません (親にプロパティがありません)。私がここでやろうとしているのは、次のことを達成することです:番号が連絡先から削除され、SaveChanges を使用して保存されると、その番号行をデータベースから削除したいのですが、代わりに、EF は外部キーを null に設定し、行は残りますデータベースで。何が問題なのですか?
ありがとう。