7

我有这样的事情:

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; }
}

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

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

我的研究表明,如果我有那个参考,它会像

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

但如前所述,这不适用于我的域模型。

4

1 回答 1

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

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

将关系配置为可选:在关系的另一端没有导航属性的情况下是必需的。

于 2013-12-14T13:42:53.180 回答