私はEntity Framework 4を使用しており、「Cascade Delete」を設定した親子関係があります。したがって、親から子を削除すると、SaveChanges() を呼び出すと子が削除されることが期待されます。
cuRepository.Attach(_controlUnit);
foreach (var recipe in recipes) {
_controlUnit.Recipes.Remove(recipe);
//repository.DeleteObject(recipe);
}
代わりにエラーが発生します:
System.InvalidOperationException が発生しました Message=The operation failed: 1 つ以上の外部キー プロパティが null 非許容であるため、リレーションシップを変更できませんでした。リレーションシップに変更が加えられると、関連する外部キー プロパティが null 値に設定されます。外部キーが null 値をサポートしていない場合は、新しい関係を定義するか、外部キー プロパティに別の非 null 値を割り当てるか、関連のないオブジェクトを削除する必要があります。
子を明示的に削除すると (コメント行を参照)、すべて問題ありません。私は何が欠けていますか?