使用说明

使用说明

  1. Partial/{表}Service.cs重写 Update,为 UpdateOnExecutingUpdateOnExecutedFunc 属性赋值,再 return base.Update(saveModel)
  2. 明细表 改为实际类型名;Func 总览见 guid.md

编辑前(原始 SaveModel,可选)

UpdateOnExecute 在实体转换 之前 执行,常用于给未提交字段赋值:

UpdateOnExecute = (SaveModel saveModel) =>
{
    // saveModel.MainData["字段"] = "值";  // 非前端提交的字段须在此或方法开头设置
    return webResponse.OK();
};

编辑(弹出框编辑保存)



/// <summary>
/// 编辑
/// </summary>
/// <param name="saveModel"></param>
/// <returns></returns>
public override WebResponseContent Update(SaveModel saveModel)
{
    WebResponseContent webResponse = new WebResponseContent();
   //注意:如果要给其他字段设置值(不是编辑界面上提交的字段),请在此处设置
   //saveModel.MainData["字段"] = "值";

    UpdateOnExecuting = (表 order,object addList,object updateList,List<object> delKeys) =>
    {
        //如果要手动设置字段值,不是前端提交的值,注意:必须设置上面saveModel.MainData["字段"]="值";
        //order.字段 = 值

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

        /***********一对多明细表新增、修改、删除的数据***********/
        //新增的明细表数据
        List<明细表> add2 = MultipleTableEntity
                                    .GetAddList(typeof(明细表), null) as List<明细表>;
        //编辑的明细表数据
        List<明细表> update2 = MultipleTableEntity
                                    .GetUpdateList(typeof(明细表), null) as List<明细表>;
        //删除的明细表id
        var delKeys2 = MultipleTableEntity.GetDelKeys<明细表>()?.Select(s => s.GetGuid());


        //code=-1时,框架不会执行数据库保存,需要自己保存数据库操作
        //webResponse.Code = "-1";
        //return webResponse.OK("返回提示");
        return webResponse.OK();
    };


    表 order2 = null;
    //编辑方法保存数据库后处理:此方法中已开启了事务,return webResponse.Error();会回滚提交的数据
    UpdateOnExecuted = (表 order,object addList,object updateList,List<object> delKeys) =>
    {
        order2 = order;//外面申明对象,用于下面if(res.Status)自定义业务逻辑取数

        /****明细表获取见上面UpdateOnExecuting****/
        
        //这里可以同时再操作其他数据库表,见下面的【数据库访问】
        
        return webResponse.OK();
        //return webResponse.Error("提示");//返回error会回滚数据库提交的数据
    };

    var res = base.Update(saveModel);
    //保存成功后做一些其他操作,注意这里不带事务,如果需要事务一致性请在UpdateOnExecuted实现业务
    if (res.Status) { }
    return res;
}

编辑(异步 async)

异步启用说明

代码生成器勾选[异步接口]后此方法才会执行,默认执行的是上面同步方法

WebResponseContent webResponse = new WebResponseContent();

/// <summary>
/// 编辑异步
/// </summary>
/// <param name="saveDataModel"></param>
/// <returns></returns>
public override async Task<WebResponseContent> UpdateAsync(SaveModel saveDataModel)
{
    WebResponseContent webResponse = new WebResponseContent();
   //注意:如果要给其他字段设置值(不是编辑界面上提交的字段),请在此处设置
   //saveModel.MainData["字段"] = "值";

    UpdateOnExecuting = (表 order,object addList,object updateList,List<object> delKeys) =>
    {
        //如果要手动设置字段值,不是前端提交的值,注意:必须设置上面saveModel.MainData["字段"]="值";
        //order.字段 = 值

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

        /***********一对多明细表新增、修改、删除的数据***********/
        //新增的明细表数据
        List<明细表> add2 = MultipleTableEntity
                                    .GetAddList(typeof(明细表), null) as List<明细表>;
        //编辑的明细表数据
        List<明细表> update2 = MultipleTableEntity
                                    .GetUpdateList(typeof(明细表), null) as List<明细表>;
        //删除的明细表id
        var delKeys2 = MultipleTableEntity.GetDelKeys<明细表>()?.Select(s => s.GetGuid());


        //code=-1时,框架不会执行数据库保存,需要自己保存数据库操作
        //webResponse.Code = "-1";
        //return webResponse.OK("返回提示");
        return webResponse.OK();
    };


    //异步操作:参数属性与上面UpdateOnExecuting一致
    UpdateOnExecutingAsync=async(表 order,object addList,object updateList,List<object> delKeys) =>
    {
        await Task.CompletedTask;
        return webResponse.OK();
    };

    //编辑方法保存数据库后处理:此方法中已开启了事务,return webResponse.Error();会回滚提交的数据
    UpdateOnExecuted = (表 order,object addList,object updateList,List<object> delKeys) =>
    {
        order2 = order;//外面申明对象,用于下面if(res.Status)自定义业务逻辑取数

        /****明细表获取见上面UpdateOnExecuting****/
        
        //这里可以同时再操作其他数据库表,见下面的【数据库访问】
        
        return webResponse.OK();
        //return webResponse.Error("提示");//返回error会回滚数据库提交的数据
    };


    //异步操作:参数属性与上面UpdateOnExecuted一致
    UpdateOnExecutedAsync=async(表 order,object addList,object updateList,List<object> delKeys) =>
    {
        await Task.CompletedTask;
        return webResponse.OK();
    };
    var res = await base.UpdateAsync(saveDataModel);

    //保存成功后做一些其他操作,注意这里不带事务
    if (res.Status) { }
    return res;
}
Last Updated 2026/6/15 15:42:48