/// <summary>
        /// Commits the current data context to the store.
        /// </summary>
        object ISaveable.Save(AppPrincipal contextUser)
        {
            object result = null;

            PrepareChangedCollections();

            result = this.Data.SaveChanges();

            if (_validator != null && _validator.CanAudit)
            {
                _validator.Audit(contextUser, this.AppContext, this);
            }

            return(result);
        }