EF 6 - 级联删除一对多,无需反向引用

Geo*_*uer 7 .net orm entity-framework entity-framework-mapping entity-framework-6

我有这样的事情:

public class Gadget {
  public int Id { get; set; }
  public string Name { get; set;}
  public int SuperHeroId { get; set; }
}

public class SuperHero {
  public int Id { get; set; }
  public virtual ICollection<Gadget> Gadgets { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

请注意,虽然小工具由超级英雄"拥有"(因此数据库中有一个FK),但我的域模型在该方向上没有硬引用.

当我删除超级英雄时,我也想删除他们的所有小工具.我该怎么做?

我的研究表明,如果我有这样的参考,那将是类似的

mapping.Entity<SuperHero>()
  .HasMany(x => x.Gadgets)
  .WithRequired(x => x.SuperHero) //this is the part I can't do
  .WillCascadeOnDelete();
Run Code Online (Sandbox Code Playgroud)

但如上所述,这不适用于我的域模型.

Col*_*lin 14

mapping.Entity<SuperHero>()   
       .HasMany(x => x.Gadgets)
       .WithRequired() //use the override that doesn't 
                       //specify a navigation property             
       .WillCascadeOnDelete();
Run Code Online (Sandbox Code Playgroud)

http://msdn.microsoft.com/en-us/library/gg696502(v=vs.113).aspx

将关系配置为可选:在关系的另一侧不需要导航属性.