无法级联删除

时间:2014-05-30 17:28:31

标签: c# entity-framework

我有一个名为Point的类,它可以包含在许多其他类中,所以结构看起来像这样:

public class foo
{
  [Key]
  public int ID { get; set; }
  public virtual Point ImageCenter { get; set; }
}
public class bar
{
  [Key]
  public int ID { get; set; }
  public virtual Point ImageCenter { get; set; }
}
public class Point
{
  [Key]
  public int ID { get; set; }
  public int X { get; set; }
  public int Y { get; set; }
}

Pointfoobar的关系为1对1。

我要删除的是当我删除foobar时,引用的Point也会被删除。

如果我将Point设置为[Required]反向删除级联(即如果我删除了Point foobar被删除了。< ; - 这与我想要的相反

1 个答案:

答案 0 :(得分:0)

你只能用Entity框架做你想做的事情(实际上限制是外键本身不是EF)。

要获得您想要的内容,您需要在DELETEUPDATEfoo上的barPoint创建触发器,以查看foo是否为未使用,如果是,则将其删除。 (如果您要删除bar,则无需仅检查是否有任何foo使用它,而且如果其他任何{{1}}也使用它,那么