/// <summary>
        /// Modify only the specified properties of the HistoryKey
        /// specified by:
        /// </summary>
        /// <param name="historyKey">PK</param>
        /// <param name="propValues">Properties to change</param>
        public virtual void Modify(String historyKey, params KeyValuePair <string, object>[] propValues)
        {
            try
            {
                Trace.WriteInformation("({0}, {1})", "Modify", CLASSNAME, historyKey, string.Join(",", propValues));

                DataAccess.HistoryKeys historyKeys = new DataAccess.HistoryKeys();
                historyKeys.Modify(
                    historyKey,
                    propValues);
                return;
            }
            catch (Exception ex)
            {
                Trace.WriteError("({0})", "Modify", CLASSNAME, ex, historyKey);
                throw;
            }
        }
        /// <summary>
        /// Modify the given HistoryKey in the database
        /// </summary>
        public virtual void Modify(Model.HistoryKey modifiedHistoryKey)
        {
            try
            {
                Trace.WriteInformation("({0})", "Modify", CLASSNAME, modifiedHistoryKey);

                //Begin Checks
                CheckConstraints(modifiedHistoryKey);

                if (!Exists(modifiedHistoryKey))
                {
                    throw new BusinessException(string.Format("There is no HistoryKey with this id. ({0})", modifiedHistoryKey));
                }

                DataAccess.HistoryKeys historyKeys = new DataAccess.HistoryKeys();
                historyKeys.Modify(modifiedHistoryKey);
            }
            catch (Exception ex)
            {
                Trace.WriteError("({0})", "Modify", CLASSNAME, ex, modifiedHistoryKey);
                throw;
            }
        }