/// <summary>
        /// 新增一条新的数据
        /// 
        /// (新增一行新的主数据, 服务类负责把这行新的主数据, 拆分为多行子数据.)
        /// 
        /// 处理结果, 将存储在 主数据的  SubDataList 属性中.
        /// </summary>
        /// <param name="mainData"></param>
        public void InsertNewMainData(MainData mainData)
        {
            // 参数有效性检查.
            if (mainData == null)
            {
                throw new ArgumentNullException("主数据不能为空!");
            }
            if (mainData.MainInitValue < 0)
            {
                throw new ArgumentException("主数据金额不能为负数!");
            }


            // 首先, 初始化 主数据的 子数据列表.
            mainData.InitSubDataList();

            // 获取初始的 主数据的 金额.
            decimal remainValue = mainData.MainInitValue;

            // 拆分处理.
            while (remainValue > 0)
            {
                // 构造一个子数据.
                SubData subData = new SubData();

                // 子数据的初始值,为 当前余额, 与 单位最大数值 中, 较小对一个.
                subData.SubInitValue = Math.Min(remainValue, this.MaxSubValue);

                // 余额 = 初始值.
                subData.SubBalanceValue = subData.SubInitValue;

                // 加入列表.
                mainData.SubDataList.Add(subData);

                // 余额递减.
                remainValue -= this.MaxSubValue;
            }


        }
        /// <summary>
        /// 新增一条新的数据
        ///
        /// (新增一行新的主数据, 服务类负责把这行新的主数据, 拆分为多行子数据.)
        ///
        /// 处理结果, 将存储在 主数据的  SubDataList 属性中.
        /// </summary>
        /// <param name="mainData"></param>
        public void InsertNewMainData(MainData mainData)
        {
            // 参数有效性检查.
            if (mainData == null)
            {
                throw new ArgumentNullException("主数据不能为空!");
            }
            if (mainData.MainInitValue < 0)
            {
                throw new ArgumentException("主数据金额不能为负数!");
            }


            // 首先, 初始化 主数据的 子数据列表.
            mainData.InitSubDataList();

            // 获取初始的 主数据的 金额.
            decimal remainValue = mainData.MainInitValue;

            // 拆分处理.
            while (remainValue > 0)
            {
                // 构造一个子数据.
                SubData subData = new SubData();

                // 子数据的初始值,为 当前余额, 与 单位最大数值 中, 较小对一个.
                subData.SubInitValue = Math.Min(remainValue, this.MaxSubValue);

                // 余额 = 初始值.
                subData.SubBalanceValue = subData.SubInitValue;

                // 加入列表.
                mainData.SubDataList.Add(subData);

                // 余额递减.
                remainValue -= this.MaxSubValue;
            }
        }