Entity Framework (バージョン 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 に設定します。
私の質問は、子カテゴリを孤立したままにするのではなく、親を削除するときに例外をスローして、このデフォルトの動作を防ぐ方法ですか?
考えられる方法の 1 つは、DbContext.SaveChanges() にフックし、ChildCategories.Any() かどうかを確認して例外をスローすることですが、見栄えが悪くなります :-(