public void Trash(Bean bean) { EnsureDispensed(bean); if (bean.GetKey(_keyAccess) == null) { return; } ImplicitTransaction(() => { bean.BeforeTrash(); foreach (var observer in _observers) { observer.BeforeTrash(bean); } _storage.Trash(bean.GetKind(), bean.GetKey(_keyAccess)); bean.AfterTrash(); foreach (var observer in _observers) { observer.AfterTrash(bean); } return(true); }); }