我有一个非常简单的单向类映射。
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 有一个 Numbers 列表,但 Number 对联系人一无所知(它的父级没有属性)。我在这里要做的是实现以下目标:当从联系人中删除号码并使用 SaveChanges 保存时,我希望从数据库中删除该号码行,但是,EF 将外键设置为 null 并且该行仍然存在在数据库中。知道有什么问题吗?
谢谢。