实体框架(版本5)在删除引用的对象时将外键属性设置为null。 例如:
public class Category
{
public int Id {get;set;}
public virtual Category ParentCategory {get;set;}
public virtual ICollection<Category> ChildCategories {get;set;}
}
由于文件http://msdn.microsoft.com/en-us/library/bb738695.aspx, 删除父类别时,EF会将所有子项的ParentCategory设置为null。
我的问题是如何通过在删除父项时抛出异常而不是将子类别作为孤儿来阻止此默认行为?
一种可能的方法是挂钩到DbContext.SaveChanges(),检查是否ChildCategories.Any()并抛出异常,但它看起来很难看: - (