CommonEntity
他の多くのエンティティで外部キーとして使用される主キーを持つエンティティと呼びましょう。アプリケーションが開発されるにつれて、これらのリンクは拡大し続けます。
安全に削除できるかどうかを確認する方法が必要ですCommonEntity
(つまり、他のエンティティによって使用されていません)。
できることに気づきました
if(!ce.EntityA.Any() && !ce.EntityB.Any() ... && !ce.EntityN.Any())
{
//Delete
}
しかし、新しい関係を追加するたびに戻ってこのコードを手動で変更しなければならないという考えが好きではないので、すべての関係を自動的にチェックする方法を望んでいます。おそらく、私が気付いていない EF4+ の何かがありますか?
トランザクション スコープを使用してオブジェクトを削除し、失敗した場合はロールバックすることは可能かもしれないと考えましたが、このアプローチに悪影響があるかどうかはわかりませんでした。
より良いアプローチはありますか?
編集: VS2012 は、プロジェクトが .Net 4 であっても EF5 を使用しているように見えるため、DB から生成されたにもかかわらず、POCO を使用してモデルを作成しました。