ruby on railsに触発エンティティフレームワークに削除コールバックを追加します。私は、トラッキングされたエンティティをループし、エンティティが削除されるたびに呼び出されるインターフェイスを作成するために、SaveChanges()をオーバーライドすることから始めました。エンティティフレームワークで削除コールバックを追加するには?
var changedEntities = ChangeTracker.Entries();
foreach (var changedEntity in changedEntities)
{
if (changedEntity.Entity is IBeforeDelete && changedEntity.State == EntityState.Deleted)
{
IBeforeDelete saveChange = (IBeforeDelete)changedEntity.Entity;
saveChange.BeforeDelete(this, changedEntity);
}
}
これはかなりうまくいきますが、私は1つの問題を考え出しました。その解決方法はわかりません。エンティティが削除されるとコールバック内に、Changetrackerは、新しく削除されたアイテムを再修正するために更新する必要があります。それをどうすれば解決できますか?それとも別の解決策がありますか?それとも間違っているのですか?あなたがコミットされていないエンティティを除外でき
*または私はそれが間違っているんです*あなたはsaveChange.BeforeDelete' 'に何をすべきかに依存します?。 –