编辑(弹出框编辑保存业务处理)

注意:写在[主表service.cs]中

    public override WebResponseContent Update(SaveModel saveModel)
    {
        //注意:如果要给其他字段设置值,请在此处设置,如:(代码生成器上将字段编辑行设置为0,然后点生成model)
        //saveModel.MainData["Remark"] = "值";//Remark改为你的字段

        //编辑方法保存数据库前处理
        UpdateOnExecuting = (表 order, object addList, object updateList, List<object> delKeys) =>
        {
             //自定义逻辑判断
            if (order.TranNo == "2019000001810001")
            {
                return webResponse.Error("不能更新此[" + order.TranNo + "]单号");
            }

            //如果要手动设置某些字段的值,值不是前端提交的(代码生成器里面编辑行必须设置为0并生成model
            //注意:必须设置上面saveModel.MainData["Remark"] = "值";
            //order.Remark = "888";

            //新增的明细表
            List<表List> add = addList as List<表List>;
            //修改的明细表
            List<表List> update = updateList as List<表List>;
            //删除明细表Id
            var guids = delKeys?.Select(x => (Guid)x);

            //如果设置code=-1会,不会执行后面的数据库保存,前端会提示成功
            //webResponse.Code = "-1";
            //return webResponse.OK("返回提示");

            return webResponse.OK();
        };

        //编辑方法保存数据库后处理
        //此方法中已开启了事务,如果在此方法中做其他数据库操作,请不要再开启事务
        // 在保存数据库后的操作,此时已进行数据提交,但未提交事务,如果返回false,则会回滚提交
        UpdateOnExecuted = (表 order, object addList, object updateList, List<object> delKeys) =>
        {
            //如果是一对多表,在这里根据主键id查询出来后单独处理业务逻辑

            //新增的明细
            List<表List> add = addList as List<表List>;
            //修改的明细
            List<表List> update = updateList as List<表List>;
            //删除的行的主键
            var guids = delKeys?.Select(x => (Guid)x);
            //保存到数据库后,这里可以再查询数据库写业务操作
            //注意EF版,这里如果是执行的sql,只能使用ef执行sql,如:repository.DbContext.Database.xx
            return webResponse.OK();
        };

        var res = base.Update(saveModel);
         //这里在保存成功后做一些其他操作
        if(res.Status){
        }
        return res;
    }
Last Updated 2025/4/15 14:51:28