예제 #1
0
        public static void RollBack(this DataContext dataContext)
        {
            ChangeSet pendingChanges = dataContext.GetChangeSet();

            foreach (var insertion in pendingChanges.Inserts)
            {
                dataContext.GetTable(insertion.GetType()).InsertOnSubmit(insertion);
            }

            foreach (var deletion in pendingChanges.Deletes)
            {
                dataContext.GetTable(deletion.GetType()).DeleteOnSubmit(deletion);
            }

            foreach (var update in pendingChanges.Updates)
            {
                dataContext.Refresh(RefreshMode.OverwriteCurrentValues, update);

                IPropertyChangedNotifier updateNotify = update as IPropertyChangedNotifier;

                foreach (PropertyInfo propertyInfo in update.GetType().GetProperties())
                {
                    updateNotify.NotifyPropertyChanged(propertyInfo.Name);
                }
            }
        }
예제 #2
0
        protected override void OnExit(IInvocation invocation)
        {
            IPropertyChangedNotifier propertyChangedNotifier = invocation.Proxy as IPropertyChangedNotifier;

            if (propertyChangedNotifier != null)
            {
                string propertyName = invocation.Member.Name;
                MyClass_b.States.Add(StateTypes.Notify);
                propertyChangedNotifier.OnPropertyChanged(invocation.Proxy, propertyName);
            }
        }