コード例 #1
0
ファイル: BeanCrud.cs プロジェクト: miseeger/LimeBean
        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);
            });
        }
コード例 #2
0
ファイル: BeanCrud.cs プロジェクト: miseeger/LimeBean
        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));
        }