public bool IsNew(Bean bean) { return(IsNew(bean.GetKind(), bean.Export())); }
public object Store(Bean bean) { EnsureDispensed(bean); var isNew = _storage.IsNew(bean); ImplicitTransaction(() => { bean.BeforeStore(); if (isNew) { bean.BeforeInsert(); } else { bean.BeforeUpdate(); } foreach (var observer in _observers) { observer.BeforeStore(bean); if (isNew) { observer.BeforeInsert(bean); } else { observer.BeforeUpdate(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); } if (isNew) { bean.AfterInsert(); } else { bean.AfterUpdate(); } bean.AfterStore(); foreach (var observer in _observers) { if (isNew) { observer.AfterInsert(bean); } else { observer.AfterUpdate(bean); } observer.AfterStore(bean); } return(true); }); bean.ForgetDirtyBackup(); return(bean.GetKey(_keyAccess)); }