Entity->Others という形式の参照制約を持つエンティティがあり、問題のエンティティを削除しようとしています。
エンティティをロードした後、削除してから保存すると、これは正常に機能します。
Entity entity = null;
entity = db.Entities.Where(o => o.Id == loadId).FirstOrDefault();
db.Entities.DeleteObject(entity);
db.SaveChanges();
参照制約を介して関連するタイプ Other のエンティティに単一のチェックを追加すると、保存時に例外がスローされる
Entity entity = null;
entity = db.Entities.Where(o => o.Id == loadId).FirstOrDefault();
entity.Others.Count();
db.Entities.DeleteObject(entity);
db.SaveChanges();
ただし、例外は次のとおりです。
操作に失敗しました: 1 つ以上の外部キー プロパティが null 非許容であるため、リレーションシップを変更できませんでした。リレーションシップに変更が加えられると、関連する外部キー プロパティが null 値に設定されます。外部キーが null 値をサポートしていない場合は、新しい関係を定義するか、外部キー プロパティに別の非 null 値を割り当てるか、関連のないオブジェクトを削除する必要があります。
ここには完全で最小限のコードがないため、あまり期待していませんが、単に Others にアクセスするとエンティティが無効になり、セーブバックする方法についての漠然とした提案をいただければ幸いです。