public void Trash(Bean bean) { EnsureDispensed(bean); if (bean.GetKey(_keyAccess) == null) { return; } ImplicitTransaction(delegate() { 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); }); }
public object Store(Bean bean) { EnsureDispensed(bean); ImplicitTransaction(delegate() { bean.BeforeStore(); foreach (var observer in _observers) { observer.BeforeStore(bean); } var key = _storage.Store(bean.GetKind(), bean.Export(), DirtyTracking ? bean.GetDirtyNames() : null); if (key is CompoundKey) { // compound keys must not change during insert/update } else { bean.SetKey(_keyAccess, key); } bean.AfterStore(); foreach (var observer in _observers) { observer.AfterStore(bean); } return(true); }); bean.ForgetDirtyBackup(); return(bean.GetKey(_keyAccess)); }