/// <summary>
        /// 自定义保存从表数据逻辑
        /// </summary>
        /// <param name="saveDataModel"></param>
        /// <returns></returns>
        public override WebResponseContent Add(SaveModel saveDataModel)
        {
            //校验从表配置
            ValidateExtra(saveDataModel);
            if (!_webResponse.Status)
            {
                return(_webResponse);
            }
            //取出校验完成后的从表1.2的数据
            TableExtra tableExtra = _webResponse.Data as TableExtra;


            //保存到数据库前
            AddOnExecuting = (App_ReportPrice price, object obj) =>
            {
                return(WebResponseContent.Instance.OK());
            };
            //App_ReportPrice 此处已经提交了数据库,处于事务中
            AddOnExecuted = (App_ReportPrice price, object obj) =>
            {
                //在此操作tableExtra从表信息
                return(WebResponseContent.Instance.OK());
            };
            return(base.Add(saveDataModel));
        }
        /// <summary>
        /// 自定义更新从表操作
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
        public override WebResponseContent Update(SaveModel saveModel)
        {
            //校验从表配置
            ValidateExtra(saveModel);
            if (!_webResponse.Status)
            {
                return(_webResponse);
            }
            //取出校验完成后的从表1.2的数据
            TableExtra tableExtra = _webResponse.Data as TableExtra;

            //保存到数据库前
            UpdateOnExecuting = (App_ReportPrice price, object obj, object obj2, List <object> list) =>
            {
                return(WebResponseContent.Instance.OK());
            };

            //App_ReportPrice 此处已经提交了数据库,处于事务中
            UpdateOnExecuted = (App_ReportPrice price, object obj, object obj2, List <object> list) =>
            {
                //在此操作tableExtra从表信息
                List <App_News> newsList = tableExtra.Table1List.Select(s => new App_News
                {
                    Id       = s.Id ?? 0,
                    Title    = s.Title,
                    ImageUrl = s.ImageUrl
                }).ToList();

                //id=0的默认为新增的数据
                List <App_News> addList = newsList.Where(x => x.Id == 0).ToList();
                //设置默认创建人信息
                addList.ForEach(x => { x.SetCreateDefaultVal(); });

                //获取所有编辑行
                List <int> editIds = newsList.Where(x => x.Id > 0).Select(s => s.Id).ToList();
                addList.ForEach(x => { x.SetModifyDefaultVal(); });
                //从数据库查询编辑的行是否存在,如果数据库不存在,执行修改操作会异常
                List <int> existsIds = App_NewsRepository.Instance.FindAsIQueryable(x => editIds.Contains(x.Id)).Select(s => s.Id).ToList();

                //获取实际可以修改的数据
                List <App_News> updateList = newsList.Where(x => existsIds.Contains(x.Id)).ToList();

                //设置默认修改人信息
                updateList.ForEach(x => { x.SetModifyDefaultVal(); });
                //新增
                repository.AddRange(addList);
                //修改(第二个参数指定要修改的字段,第三个参数执行保存)
                repository.UpdateRange(updateList, x => new { x.Title, x.ImageUrl, x.Modifier, x.ModifyDate, x.ModifyID });
                //其他从表按上面同样的操作即可
                //最终保存
                //repository.SaveChanges();
                return(WebResponseContent.Instance.OK());
            };
            return(base.Update(saveModel));
        }
 /// <summary>
 /// 验证提交的从表参数
 /// saveModel.Extra在App_ReportPrice.js中addBefore/updateBefore新建与编辑时提交到的后台
 /// </summary>
 /// <param name="saveModel"></param>
 /// <returns></returns>
 private WebResponseContent ValidateExtra(SaveModel saveModel)
 {
     if (saveModel == null || saveModel.Extra == null)
     {
         return(_webResponse.Error("请提交参数"));
     }
     try
     {
         TableExtra tableExtra = saveModel.Extra.ToString().DeserializeObject <TableExtra>();
         if (tableExtra == null ||
             tableExtra.Table1List == null ||
             tableExtra.Table1List.Count == 0 ||
             tableExtra.Table1List == null ||
             tableExtra.Table2List.Count == 0)
         {
             return(_webResponse.Error("请提交从表1与从表2的参数"));
         }
         //校验 从表1字段:Title,CreateDate必填
         _webResponse = tableExtra.Table1List.ValidationEntityList(x => new { x.Title, x.CreateDate });
         if (!_webResponse.Status)
         {
             _webResponse.Message = "从表1:" + _webResponse.Message;
             return(_webResponse);
         }
         //校验 从表2字段:Describe, Name,PhoneNo 必填
         _webResponse = tableExtra.Table2List.ValidationEntityList(x => new { x.Describe, x.Name, x.PhoneNo });
         if (!_webResponse.Status)
         {
             _webResponse.Message = "从表2:" + _webResponse.Message;
             return(_webResponse);
         }
         //校验成功返回
         return(_webResponse.OK(null, tableExtra));
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         return(_webResponse.Error("参数不正确"));
     }
 }