/// <summary>
        /// Processes the submit.
        /// </summary>
        /// <param name="changeSet">The change set.</param>
        /// <returns>Returns True if successful, otherwise false.</returns>
        protected override bool ProcessSubmit(ChangeSet changeSet)
        {
            bool success = true;

            try
            {
                foreach (ChangeSetEntry entry in changeSet.ChangeSetEntries)
                {
                    switch (entry.Operation)
                    {
                        case ChangeOperation.Update:
                            DbEntityEntry deliveryEntry = _dbContext.Entry(entry.Entity);

                            Customer customer = _dbContext.Customers.Local.FirstOrDefault(c => c.CustomerId == (deliveryEntry.Entity as Delivery).CustomerId);
                            if (customer != null)
                            {
                                (deliveryEntry.Entity as Delivery).Customer = customer;
                            }

                            deliveryEntry.State = EntityState.Modified;
                            _dbContext.SaveChanges();
                            break;
                    }
                }

            }
            catch (Exception ex)
            {
                success = false;
            }

            return success;
        }
        public virtual bool Submit(IEnumerable<ChangeSetEntry> changeSet)
        {
            if (changeSet == null)
            {
                throw new ArgumentNullException("changeSetEntries");
            }

            _changeSet = new ChangeSet(changeSet, _description.EntityTypes);

            return ProcessSubmit(_changeSet);
        }
 protected abstract bool ProcessSubmit(ChangeSet changeSet);