通知、NewItemNotifications、Itemsの3つのテーブルがあります。
NewItemNotificationsおよびItemsテーブルにONDELETEルールを設定しました。これにより、一部のアイテムを削除するとNewItemNotification行が削除されます。
問題は、通知テーブルの親行がまだ存在していることです。これをどのように処理できますか?
1 に答える
2
NewItemNotification
依存テーブルです-データベースの制約によって親レコードの削除をトリガーすることはできません。唯一の方法は、依存レコードが削除された後NewItemNotification
にテーブルで削除を実行するためにデータベーストリガーを書き込むことです。Notification
問題は、EFがNewItemNotification
トリガーの存在を知らないために削除しようとすると、そのようなトリガーが問題を引き起こす可能性があることです。EFが知らないNewItemNotification
うちにアイテムの削除をトリガーするレコードを最初に削除しました。Notification
その後、EFはNotification
レコードの削除を再試行しますが、レコードはすでに削除されています。同時実行例外が発生すると思います。
この場合の最良のオプションは、カスケード削除を使用せず、自分で削除を処理することです。
于 2012-07-03T14:48:03.210 に答える