我有这样的事情:
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; }
}
请注意,虽然Gadget是由超级英雄“拥有”(因此数据库中有FK),但我的域模型在该方向上没有硬引用。
当我删除超级英雄时,我还要删除所有小工具。我该怎么做?
我的研究表明,如果我有这个参考,那就像
mapping.Entity<SuperHero>()
.HasMany(x => x.Gadgets)
.WithRequired(x => x.SuperHero) //this is the part I can't do
.WillCascadeOnDelete();
但如上所述,这不适用于我的域模型。
答案 0 :(得分:13)
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
将关系配置为可选:不需要a 关系另一边的导航属性。