使用说明

使用说明

  1. Partial/{表}Service.cs重写 Add,为 AddOnExecutingAddOnExecutedFunc 属性赋值(见 ApplicationServiceBase.cs),再 return base.Add(saveDataModel)
  2. Func 机制与执行顺序见 guid.md

新建前(原始 SaveModel,可选)

AddOnExecute 在实体转换与校验 之前 执行,参数为前台提交的原始 SaveModel

AddOnExecute = (SaveModel saveModel) =>
{
    // saveModel.MainData / DetailData 仍为字典,尚未转为实体
    return webResponse.OK();
};

新建(前端新建保存)

内容较多,按需实现里面的功能


/// <summary>
/// 新建
/// </summary>
/// <param name="saveDataModel"></param>
/// <returns></returns>
public override WebResponseContent Add(SaveModel saveDataModel)
{
    WebResponseContent webResponse = new WebResponseContent();

    // 在保存数据库前的操作,所有数据都验证通过了,这一步执行完就执行数据库保存
    //list为明细表,注意:如果是一对多明细表,直接从Order.明细表取值
    AddOnExecuting = (当前表 order, object list) =>
    {
        //明细表对象
        //List<当前表明细> orderLists = list as List<当前表明细>;
        return webResponse.OK();
    };

    //list为明细表,注意:如果是一对多明细表,直接从Order.明细表取值
    AddOnExecuted = (当前表 order, object list) =>
    {
        //明细表对象
        //List<当前表明细> orderLists = list as List<当前表明细>;
        return webResponse.OK();//异常或者return webResponse.Error("提示信息");会回滚数据
    };


    //新建的数据进入审批流程前处理,
    AddWorkFlowExecuting = (当前表 order) =>
    {
        return true;
    };

    //新建的数据写入审批流程后,第二个参数为审批人的用户id
    AddWorkFlowExecuted = (当前表 order, List<int> userIds) =>
    {
        //获取审批流程信息http://doc.volcore.xyz/docs/cs/service/flow.html
    };
    return base.Add(saveDataModel);
}

新建(异步 async)

异步启用说明

  1. 代码生成器勾选[异步接口]后此方法才会执行,默认执行的是上面同步方法
  2. 内容较多,按需实现里面的功能

/// <summary>
/// 新建异步
/// </summary>
/// <param name="saveDataModel"></param>
/// <returns></returns>
public override async Task<WebResponseContent> AddAsync(SaveModel saveDataModel)
{
    WebResponseContent webResponse = new WebResponseContent();

    //list为明细表,注意:如果是一对多明细表,直接从Order.明细表取值
    AddOnExecuting = (当前表 order, object list) =>
    {
        return webResponse.OK();
    };


    //list为明细表,注意:如果是一对多明细表,直接从Order.明细表取值
    AddOnExecutingAsync = async (当前表 order, object list) =>
    {
        //明细表对象
        //List<当前表明细> orderLists = list as List<当前表明细>;
        await Task.CompletedTask;
        return webResponse.OK();
    };

    //list为明细表,注意:如果是一对多明细表,直接从Order.明细表取值
    AddOnExecuted = (当前表 order, object list) =>
    {
        //明细表对象
        //List<当前表明细> orderLists = list as List<当前表明细>;
        return webResponse.OK();
    };


    //list为明细表,注意:如果是一对多明细表,直接从Order.明细表取值
    AddOnExecutedAsync = async (当前表 order, object list) =>
    {
        //明细表对象
        //List<当前表明细> orderLists = list as List<当前表明细>;
        await Task.CompletedTask;

        return webResponse.OK();
    };

    //新建的数据进入审批流程前处理,
    AddWorkFlowExecuting = (当前表 order) =>
    {
        return true;
    };

    //新建的数据写入审批流程后,第二个参数为审批人的用户id
    AddWorkFlowExecuted = (当前表 order, List<int> userIds) =>
    {
        //获取审批流程信息http://doc.volcore.xyz/docs/cs/service/flow.html
    };

    //异步:新建的数据进入审批流程前处理
    AddWorkFlowExecutingAsync = async (当前表 order) =>
    {
        //await xxx异步操作
        return true;
    };

    //异步:新建的数据写入审批流程后,第二个参数为审批人的用户id
    AddWorkFlowExecutedAsync = async (当前表 order, List<int> userIds) =>
    {
        //获取审批流程信息http://doc.volcore.xyz/docs/cs/service/flow.html
        await Task.CompletedTask;
    };
    return await base.AddAsync(saveDataModel);
}
Last Updated 2026/6/15 15:42:48