Exemple #1
0
        /// <summary>
        /// Actually Submits the cached changes into the database all at once.
        /// </summary>
        public void SubmitChanges()
        {
            //ToDo: eventually insert first, then delete, then update
            List <ChangeTrackerEntry> changedEntries = _ct.DetectChanges();

            foreach (var change in changedEntries)
            {
                switch (change.State)
                {
                case ChangeTrackerEntry.States.Modified:
                    ExecuteUpdate(change);
                    break;

                case ChangeTrackerEntry.States.Added:
                    ExecuteInsert(change);
                    break;

                case ChangeTrackerEntry.States.Deleted:
                    ExecuteDelete(change);
                    break;
                }
            }

            //set ChangeTrackerEntries to unmodified and delete old ones
            _ct.ComputeChanges();
        }